Trích bảng từ PDF ra bảng tính: cơ chế, hiện trạng và cách xử lý kết quả
Công cụ này đọc file PDF, lấy toàn bộ chữ kèm tọa độ của từng đoạn chữ, gom những đoạn nằm cùng một độ cao thành một dòng rồi sắp theo chiều ngang thành các cột, cuối cùng trả về một tệp dữ liệu phân tách bằng dấu phẩy. Đây là bản trích xuất thô để bạn tự dựng lại bảng trong Excel, không phải bộ chuyển đổi giữ nguyên định dạng.
Tính năng nổi bật
- Nhận nhiều file PDF cùng lúc bằng cách kéo thả hoặc chọn từ máy
- Đọc chữ kèm tọa độ trong PDF bằng thư viện pdf.js chạy trên máy chủ
- Gom các đoạn chữ có cùng tọa độ dọc thành một dòng, sắp theo tọa độ ngang thành cột
- Công tắc chọn xử lý toàn bộ trang hoặc chỉ trang đầu tiên
- Hiển thị thanh tiến trình và số trang có dữ liệu tìm được cho từng file
- Nút tải từng file hoặc tải tất cả file đã xử lý xong
- Nút xóa từng file và xóa toàn bộ danh sách khỏi phiên làm việc
- Kết quả trả thẳng về trình duyệt, mã xử lý không ghi file lên ổ đĩa máy chủ
Vì sao chép bảng trực tiếp từ PDF sang Excel hay bị lệch cột
Khác với file bảng tính, PDF không lưu khái niệm bảng. Nó chỉ lưu từng mẩu chữ kèm tọa độ để in ra đúng chỗ. Cái mà mắt bạn nhìn thành bảng thực chất chỉ là các mẩu chữ được đặt thẳng hàng và có thể thêm vài đường kẻ vẽ riêng, không liên quan gì tới chữ. Vì vậy khi bôi đen rồi dán sang Excel, tất cả rơi vào một cột hoặc vỡ tung thành nhiều dòng, vì thao tác sao chép chỉ lấy chuỗi chữ theo thứ tự lưu trong file chứ không dựng lại lưới. Công cụ này làm thêm đúng một việc mà thao tác sao chép không làm: đọc tọa độ của từng mẩu chữ để suy ra dòng và cột. Nhờ vậy dữ liệu ra ngoài đã có dạng lưới thô, bạn chỉ còn phải sửa những chỗ máy chia nhầm thay vì gõ lại toàn bộ. Với các bảng có bố cục đều đặn, cách này tiết kiệm được phần lớn công nhập liệu.
Lợi ích khi sử dụng
- Giữ được cấu trúc dòng và cột thô thay vì dán ra một cột duy nhất
- Xử lý được nhiều file liên tiếp trong một lần thao tác
- Không cần cài phần mềm, chỉ cần trình duyệt và file PDF
- Nhìn thấy ngay số trang có dữ liệu để biết file nào trích được, file nào không
- Kết quả ở dạng văn bản thuần nên mở được bằng Excel, Google Sheets hay LibreOffice
Cách trích bảng từ PDF
- 1Bật hoặc tắt công tắc trích xuất tất cả trang tùy theo bạn cần cả tài liệu hay chỉ trang đầu.
- 2Kéo file PDF vào khung có viền đứt hoặc bấm vào khung để chọn file từ máy tính.
- 3Chờ thanh tiến trình chạy xong, mỗi file được xử lý lần lượt và hiện số trang có dữ liệu tìm được.
- 4Bấm nút tải xuống để lấy file kết quả, hoặc bấm tải tất cả nếu bạn xử lý nhiều file.
- 5Đổi phần đuôi file thành .csv rồi mở bằng chức năng nhập dữ liệu từ văn bản của Excel, chọn bảng mã UTF-8 và dấu phẩy làm ký tự phân tách.
Công cụ thật sự làm gì bên trong
File PDF của bạn được gửi lên máy chủ, ở đó thư viện pdf.js mở tài liệu và lấy danh sách các mẩu chữ của từng trang. Mỗi mẩu chữ đi kèm một ma trận biến đổi cho biết vị trí của nó trên trang. Chương trình lấy tọa độ dọc đã làm tròn về số nguyên làm khóa để gom nhóm: mọi mẩu chữ có cùng tọa độ dọc được coi là nằm trên cùng một dòng. Sau đó các nhóm được sắp từ trên xuống dưới, và trong từng nhóm các mẩu chữ được sắp từ trái sang phải theo tọa độ ngang, rồi nối lại thành một dòng có dấu phẩy ngăn cách và mỗi ô bọc trong dấu nháy kép. Kết quả của tất cả các trang được nối vào nhau, có thêm vài dòng thông tin ở đầu ghi tên file, số trang và số bảng đếm được. Cần nói rõ con số bảng ở đây không phải kết quả của một thuật toán nhận diện bảng: mỗi trang có ít nhất một dòng chữ sẽ được cộng thêm một, nên một tài liệu mười trang toàn văn xuôi vẫn hiện là tìm thấy mười bảng.
File tải về có đuôi xlsx nhưng bên trong là dữ liệu phân tách bằng dấu phẩy
Đây là điểm quan trọng nhất bạn cần biết trước khi dùng. Máy chủ đặt tên file kết quả với đuôi .xlsx và khai báo kiểu nội dung của bảng tính Excel, nhưng phần nội dung thật bên trong lại là văn bản thuần theo dạng phân tách bằng dấu phẩy, không phải cấu trúc gói của một file Excel thật. Hệ quả là khi bạn bấm đúp mở bằng Excel, chương trình sẽ báo phần mở rộng không khớp với định dạng và hỏi có muốn mở tiếp không. Cách xử lý gọn nhất là đổi đuôi file từ .xlsx sang .csv rồi mở, hoặc mở Excel trước và dùng chức năng lấy dữ liệu từ văn bản để nhập vào, khi đó bạn chọn được bảng mã UTF-8 nên tiếng Việt không bị lỗi dấu và chọn được kiểu dữ liệu cho từng cột nên số điện thoại hay mã hàng bắt đầu bằng số không sẽ không bị cắt mất. Nếu mở bằng Google Sheets thì dùng chức năng nhập file và chọn dấu phẩy làm ký tự phân tách.
Những gì công cụ chưa làm được
Đừng kỳ vọng công cụ giữ nguyên định dạng. Kết quả trả về là chữ thuần, nên màu nền, viền bảng, ô gộp, cỡ chữ và kiểu số đều mất hết. Công thức cũng không thể giữ lại, đơn giản vì trong PDF không còn công thức nào cả, chỉ còn con số đã tính xong được in ra. Công tắc giữ nguyên định dạng trên giao diện hiện chưa được gửi kèm khi gọi xử lý nên bật hay tắt cũng cho cùng một kết quả. Cách gom dòng theo tọa độ dọc làm tròn cũng có giới hạn thật: ô nào có chữ xuống hàng trong cùng một ô sẽ bị tách thành hai dòng riêng, dòng có chữ đặt lệch vài phần trăm điểm ảnh so với các ô cùng hàng sẽ tách ra thành dòng riêng, và tiêu đề cùng số trang nằm ở đầu cuối trang cũng bị đưa vào như một dòng dữ liệu. Với bảng nhiều cấp tiêu đề hoặc bảng trải qua nhiều trang, bạn vẫn phải dọn lại bằng tay sau khi nhập vào Excel.
PDF quét từ máy scan thì không dùng được
Có hai loại PDF trông giống nhau nhưng khác hẳn về bản chất. Loại thứ nhất sinh ra từ phần mềm, ví dụ xuất từ Word, từ phần mềm kế toán hay từ trình duyệt; loại này chứa chữ thật nên trích xuất được. Loại thứ hai là ảnh chụp hoặc ảnh quét được đóng gói trong vỏ PDF; nhìn thì thấy chữ nhưng file chỉ chứa điểm ảnh. Cách kiểm tra nhanh là mở file rồi thử bôi đen một dòng: nếu bôi được và sao chép ra được chữ thì đó là PDF chữ, nếu chỉ chọn được cả khối như chọn ảnh thì đó là PDF quét. Công cụ này chỉ đọc lớp chữ nên với PDF quét nó sẽ trả về kết quả rỗng hoặc gần như rỗng. Muốn xử lý PDF quét, bạn cần một bước nhận dạng ký tự quang học trước để tạo ra lớp chữ, sau đó mới trích bảng. Chất lượng nhận dạng phụ thuộc rất nhiều vào độ phân giải bản quét, độ nghiêng của trang và việc bản gốc có dấu tiếng Việt rõ hay không.
Dọn dữ liệu sau khi nhập và khi nào nên dùng công cụ chuyên dụng
Sau khi nhập vào Excel, có vài việc gần như lần nào cũng phải làm. Xóa các dòng lặp lại của tiêu đề bảng ở mỗi trang và các dòng chân trang. Gộp lại những ô bị tách do chữ xuống hàng, thường nhận ra vì dòng phía sau chỉ có một ô có chữ còn lại trống. Chuyển cột số từ dạng chữ về dạng số, chú ý dấu phân cách hàng nghìn kiểu Việt Nam là dấu chấm còn dấu thập phân là dấu phẩy, nên phải dùng chức năng tìm và thay thế trước khi đổi kiểu dữ liệu. Nếu bạn phải làm việc này thường xuyên với hàng chục file cùng khuôn, hãy cân nhắc các công cụ chuyên về bảng như Tabula hoặc thư viện Camelot cho Python, vốn có thuật toán dò đường kẻ và dò khoảng trắng giữa cột nên bám cấu trúc tốt hơn nhiều. Với dữ liệu tài chính nhạy cảm, phương án chạy tại máy sẽ an toàn hơn vì file không phải rời khỏi máy bạn.
Câu hỏi thường gặp (FAQ)
File PDF của tôi có được gửi lên máy chủ không?
Có. Khác với nhiều công cụ khác trên trang này, việc trích xuất chạy ở phía máy chủ nên file được tải lên trước khi xử lý. Mã xử lý đọc file trong bộ nhớ rồi trả kết quả về ngay, không có lệnh ghi file ra ổ đĩa. Dù vậy, với sao kê ngân hàng hay hồ sơ nhân sự, bạn nên cân nhắc dùng công cụ chạy tại máy.
Vì sao Excel báo định dạng file không khớp khi tôi mở kết quả?
Vì file tải về mang đuôi .xlsx nhưng nội dung bên trong là văn bản phân tách bằng dấu phẩy chứ không phải cấu trúc file Excel thật. Bạn hãy đổi đuôi sang .csv rồi mở, hoặc mở Excel trước và dùng chức năng lấy dữ liệu từ văn bản. Cách thứ hai còn cho phép chọn bảng mã UTF-8 để tiếng Việt không bị lỗi dấu.
Tiếng Việt bị lỗi dấu khi mở bằng Excel, khắc phục thế nào?
Nguyên nhân là Excel trên Windows mặc định đọc file văn bản theo bảng mã hệ thống chứ không phải UTF-8. Đừng bấm đúp mở file. Hãy vào thẻ Dữ liệu, chọn lấy dữ liệu từ tệp văn bản, chỉ định nguồn là UTF-8 và ký tự phân tách là dấu phẩy, khi đó dấu tiếng Việt hiển thị đúng.
Con số bảng tìm thấy có ý nghĩa gì?
Nó đếm số trang có ít nhất một dòng chữ, không phải số bảng thật. Một tài liệu mười trang toàn văn xuôi vẫn hiện là tìm thấy mười bảng. Hãy coi con số này như dấu hiệu cho biết công cụ đọc được lớp chữ trong file, còn việc có bảng hay không thì bạn phải tự kiểm tra khi mở kết quả.
Công cụ có xử lý được PDF quét từ máy scan không?
Không. Nó chỉ đọc lớp chữ có sẵn trong file, còn PDF quét chỉ chứa điểm ảnh nên kết quả sẽ rỗng. Cách kiểm tra nhanh là mở PDF và thử bôi đen một dòng chữ: bôi được là PDF chữ, không bôi được là PDF ảnh. Với PDF ảnh, bạn cần chạy nhận dạng ký tự quang học trước.
Kết quả có giữ được công thức trong bảng không?
Không, và không công cụ nào làm được điều này. Khi một bảng tính được xuất ra PDF, công thức đã bị thay bằng giá trị đã tính xong; file PDF chỉ còn con số hiển thị. Nếu bạn cần công thức, cách duy nhất là xin lại file bảng tính gốc từ người gửi.
Vì sao một ô của tôi bị tách thành hai dòng?
Vì công cụ gom dòng theo tọa độ dọc của từng mẩu chữ. Một ô có nội dung dài tự xuống hàng sẽ tạo ra hai mẩu chữ ở hai độ cao khác nhau nên bị hiểu thành hai dòng. Bạn nhận ra chúng khá dễ vì dòng phía sau thường chỉ có một ô có chữ, các ô còn lại trống, và gộp lại bằng tay.
Công tắc giữ nguyên định dạng có tác dụng gì?
Hiện tại không có tác dụng thực tế. Giá trị của công tắc này chưa được gửi kèm khi gọi xử lý, và bản thân kết quả là văn bản thuần nên không mang theo định dạng nào. Chỉ có công tắc trích xuất tất cả trang là thật sự thay đổi kết quả, quyết định xử lý cả tài liệu hay chỉ trang đầu.
Bảng của tôi kéo dài qua nhiều trang thì xử lý sao?
Bật công tắc trích xuất tất cả trang, công cụ sẽ nối dữ liệu của các trang lại theo thứ tự. Nhưng dòng tiêu đề của bảng lặp ở đầu mỗi trang cùng với số trang ở chân trang cũng được đưa vào như dữ liệu, nên sau khi nhập vào Excel bạn cần lọc bỏ các dòng lặp đó trước khi tính toán.
Cột số của tôi vào Excel thành chữ, phải làm gì?
Do dữ liệu ra ở dạng văn bản và số kiểu Việt Nam dùng dấu chấm ngăn hàng nghìn, dấu phẩy làm dấu thập phân. Hãy dùng tìm và thay thế để bỏ dấu chấm ngăn hàng nghìn, đổi dấu phẩy thập phân thành dấu chấm nếu máy bạn đặt vùng theo chuẩn quốc tế, rồi mới định dạng cột về kiểu số.
Có giới hạn dung lượng file không?
Giao diện ghi mức 50MB cho mỗi file. Trên thực tế, giới hạn còn phụ thuộc vào cấu hình máy chủ và thời gian xử lý cho phép, nên file rất dày với hàng trăm trang có thể bị lỗi giữa chừng. Nếu gặp lỗi, hãy tách file ra thành từng phần nhỏ rồi xử lý lần lượt.
Có công cụ nào trích bảng từ PDF chính xác hơn không?
Có. Tabula và thư viện Camelot dành cho Python được thiết kế riêng cho việc này, chúng dò đường kẻ bảng hoặc dò khoảng trắng giữa các cột nên bám cấu trúc tốt hơn nhiều. Cả hai chạy trên máy của bạn nên cũng phù hợp hơn khi dữ liệu nhạy cảm, đổi lại bạn phải cài đặt và làm quen với công cụ.
Từ khóa liên quan
- chuyển pdf sang excel
- trích xuất bảng từ pdf
- pdf to excel online
- copy bảng từ pdf sang excel
- chuyển pdf sang excel giữ định dạng
- pdf sang csv
- mở file csv bằng excel không lỗi font
- nhập dữ liệu từ text vào excel
- pdf scan sang excel
- ocr pdf tiếng việt
- tabula trích bảng pdf
- camelot python pdf table
- chuyển sao kê ngân hàng sang excel
- trích số liệu từ báo cáo pdf
- pdf không copy được chữ
- bảng pdf bị lệch cột khi dán
- chuyển hóa đơn pdf sang excel
- xử lý dữ liệu pdf hàng loạt
- pdf.js trích xuất văn bản
- công cụ chuyển pdf sang bảng tính