Excel files: a workbook is a ZIP of XML, and a PDF has no tables at all
What an XLSX really contains, why pulling a table out of a PDF is inference rather than extraction, and which cells become numbers. Convert in your browser.
At a glance
- Type
- Documents
- Extensions
- .xlsx
- MIME type
- application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
- Also known as
- XLSX, Microsoft Excel, spreadsheet
An .xlsx file is a ZIP archive of XML, the same construction as the .docx described on the Word page and part of the same 2007 Office Open XML move. Rename one to .zip and you will find a workbook part listing the sheets, one part per sheet holding the cells, a styles part, and the relationship files that tie them together. Because it is XML in a ZIP, a workbook can be written without any Microsoft code, which is what this site does — five XML parts emitted directly rather than a spreadsheet library added to the bundle. Cell text goes in as an inline string, so each sheet is self-contained, and the ceilings are Excel’s own: 1,048,576 rows, 16,384 columns, 255 sheets.
Read more
The difficulty is entirely on the other side. A PDF has no tables. It has glyph runs with a position each, and the ruled lines you can see are unrelated drawing operations — nothing in the file records that a cell exists, let alone which text belongs to it. So the grid has to be inferred from geometry, which is what every tool that does this really does, including the ones that charge for it.
The inference runs in two steps. Rows come from shared baselines, which is the reliable half because it is how the page was typeset in the first place. Columns come from horizontal extents that overlap, and a band has to recur across several rows before it counts as a column — recurrence is what separates a real column from a paragraph that happens to be indented. Left edges alone do not work, which is worth recording because it is the obvious first implementation and it fails on the most ordinary table there is: a right-aligned quantity column holding 6, 96 and 240 has three different left edges, a digit apart each, so the column splits and every row grows a stray empty cell. Overlap handles left, right and centre alignment without having to know which it is looking at.
What lands in a cell as a number is deliberately conservative: plain, optionally signed decimals and nothing else. 007, 1,234, 2026-09-10, +44 20 and anything carrying a currency symbol stay exactly as they appeared, because a leading zero, a thousands separator and a date are each information that coercion would destroy. Decimal places are kept, so 48.50 arrives as 48.50 rather than 48.5. The limits are stated on the page rather than hidden: merged cells come out in the first column they span, a cell whose text wraps onto two lines becomes two rows, one sheet is produced per page, and a page with no repeating column structure comes back as a single column of lines — which is the honest answer for prose.
Convert other formats to Excel
FAQ
Is an XLSX really a ZIP file?
Yes, exactly like a DOCX. Rename it to .zip and open it: inside are XML parts for the workbook, for each sheet, for styles, and the relationships between them.
Will the numbers actually add up?
Yes, for cells that are plain decimals — those are written as numbers, so SUM and the rest work on them. Anything ambiguous is left as text on purpose, and text does not sum.
Why did my reference number 007 come through as text?
Because the leading zero is information. Storing it as a number would turn it into 7 and there would be no way to get it back, so values that only look numeric are left exactly as they appeared.
My table lost its column boundaries. Why?
Columns are recognised by cell spans that overlap and recur down the page. A table with only one or two rows, or one whose cells are positioned irregularly, gives the inference nothing to lock onto and comes back as lines of text.
Does it work on a scanned PDF?
No, and it declines rather than guessing. Recognition returns one line of text per detection box, which is enough to rebuild prose and not enough to rebuild a grid — the boxes merge neighbouring cells often enough that the result would look like a table and be wrong.
Can I convert Excel to PDF here?
Not locally. Rendering a workbook the way Excel does — page breaks, print areas, column widths — needs Excel or LibreOffice, and neither runs in a browser tab. The conversions here go into XLSX rather than out of it.