Tệp Excel: workbook là gói ZIP chứa XML, còn PDF thì chẳng có bảng nào
XLSX thực sự chứa gì, vì sao lấy bảng từ PDF là suy luận chứ không phải trích xuất, và ô nào thành số. Chuyển đổi ngay trên trình duyệt, không tải lên.
Tóm tắt nhanh
- Loại
- Tài liệu
- Đuôi tệp
- .xlsx
- Kiểu MIME
- application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
- Tên gọi khác
- XLSX, Microsoft Excel, spreadsheet
Tệp .xlsx là một gói nén ZIP chứa XML, cùng cấu trúc với tệp .docx mô tả ở trang Word và cùng thuộc bước chuyển sang Office Open XML năm 2007. Đổi tên thành .zip là bạn sẽ thấy một phần workbook liệt kê các sheet, mỗi sheet một phần chứa các ô, một phần kiểu định dạng, và các tệp liên kết gắn chúng lại với nhau. Vì là XML trong ZIP, workbook có thể được ghi ra mà không cần mã nào của Microsoft, và trang này làm đúng như vậy — sinh trực tiếp năm phần XML thay vì thêm cả một thư viện bảng tính vào gói tải. Chữ trong ô được ghi dạng chuỗi nội tuyến, nên mỗi sheet tự đứng độc lập, và các giới hạn là của chính Excel: 1.048.576 hàng, 16.384 cột, 255 sheet.
Đọc thêm
Khó khăn nằm hoàn toàn ở phía bên kia. PDF không có bảng. Nó có các chuỗi ký tự, mỗi chuỗi kèm một vị trí, còn những đường kẻ bạn nhìn thấy là các lệnh vẽ không liên quan — không có gì trong tệp ghi lại rằng một ô tồn tại, chứ đừng nói đến chữ nào thuộc về ô nào. Vì vậy lưới phải được suy ra từ hình học, và đó là điều mọi công cụ làm việc này thực sự làm, kể cả những công cụ thu phí.
Việc suy luận diễn ra theo hai bước. Hàng được suy ra từ các đường chân chữ chung, đây là nửa đáng tin cậy vì đó chính là cách trang được dàn chữ ngay từ đầu. Cột được suy ra từ các khoảng ngang chồng lên nhau, và một dải phải lặp lại trên nhiều hàng mới được coi là cột — sự lặp lại là thứ phân biệt một cột thật với một đoạn văn tình cờ thụt lề. Chỉ dựa vào mép trái thì không được, điều đáng ghi lại vì đó là cách làm đầu tiên ai cũng nghĩ tới và nó thất bại ngay với loại bảng bình thường nhất: một cột số lượng căn phải chứa 6, 96 và 240 có ba mép trái khác nhau, mỗi mép lệch nhau một chữ số, nên cột bị tách ra và hàng nào cũng mọc thêm một ô trống thừa. Dựa vào phần chồng lấn thì xử lý được cả căn trái, căn phải lẫn căn giữa mà không cần biết mình đang gặp loại nào.
Những gì được đưa vào ô dưới dạng số được chọn một cách thận trọng có chủ ý: chỉ số thập phân đơn thuần, có thể có dấu, và không gì khác. 007, 1,234, 2026-09-10, +44 20 và mọi thứ mang ký hiệu tiền tệ được giữ đúng như khi xuất hiện, vì số 0 ở đầu, dấu phân cách hàng nghìn và ngày tháng đều là thông tin mà việc ép kiểu sẽ phá huỷ. Số chữ số thập phân được giữ, nên 48.50 đến nơi là 48.50 chứ không thành 48.5. Các giới hạn được nói rõ trên trang thay vì giấu đi: ô gộp được đặt vào cột đầu tiên mà nó trải qua, ô có chữ xuống hai dòng sẽ thành hai hàng, mỗi trang tạo ra một sheet, và trang không có cấu trúc cột lặp lại sẽ được trả về thành một cột gồm các dòng — câu trả lời trung thực cho văn xuôi.
Chuyển định dạng khác sang Excel
Câu hỏi thường gặp về Excel
XLSX thật sự là tệp ZIP sao?
Đúng vậy, y như DOCX. Đổi tên thành .zip rồi mở ra: bên trong là các phần XML cho workbook, cho từng sheet, cho kiểu định dạng, và các mối liên kết giữa chúng.
Các con số có cộng được thật không?
Được, với những ô là số thập phân đơn thuần — chúng được ghi dưới dạng số, nên hàm SUM và các hàm khác dùng được. Mọi thứ mơ hồ đều được cố ý giữ dạng chữ, và chữ thì không cộng được.
Vì sao mã tham chiếu 007 của tôi lại thành dạng chữ?
Vì số 0 ở đầu là thông tin. Lưu nó dạng số sẽ biến thành 7 và không có cách nào lấy lại, nên những giá trị chỉ trông giống số được giữ đúng như khi xuất hiện.
Bảng của tôi bị mất ranh giới cột. Vì sao?
Cột được nhận ra nhờ các khoảng ô chồng lên nhau và lặp lại xuống dưới trang. Bảng chỉ có một hai hàng, hoặc có ô đặt không đều, không cho việc suy luận chỗ nào để bám vào và sẽ ra thành các dòng chữ.
Có dùng được với PDF bản quét không?
Không, và nó từ chối thay vì đoán. Nhận dạng trả về một dòng chữ cho mỗi khung phát hiện, đủ để dựng lại văn xuôi nhưng không đủ để dựng lại lưới — các khung đó gộp ô cạnh nhau thường xuyên đến mức kết quả sẽ trông như bảng mà lại sai.
Có chuyển Excel sang PDF ở đây được không?
Không thể làm ngay trên máy. Kết xuất một workbook như Excel làm — ngắt trang, vùng in, độ rộng cột — cần đến Excel hoặc LibreOffice, và không cái nào chạy được trong thẻ trình duyệt. Các chuyển đổi ở đây là chuyển sang XLSX chứ không phải từ XLSX ra.