Skip to content

PDF to Excel

Pull the tables out of a PDF into a spreadsheet.

Processed on your device

This tool runs entirely in your browser. Your file is never uploaded, and you can verify that in your browser's network tab. Verify it yourself: open your browser's network tab and watch. You will see one small request asking whether you have tasks left - a tool name and a hash, never the file.

What this does

This finds the tables in a document and writes them into an .xlsx workbook. A PDF never records that something is a table, so the columns are located geometrically, from the vertical gutters that survive every row. Values that read cleanly as numbers are written as numbers, which is the difference between a column you can sum immediately and one Excel refuses to add up.

Bank statements, invoice line items, a supplier price list published only as a PDF, the results table in a report you need to chart - anywhere the figures are visible on the page and retyping them is the only other option.

How it works

  1. Drop the PDF onto this page. One file at a time, up to 200 MB.
  2. Leave the confidence threshold at 55%. Lower it if a table was missed, raise it if something that is not a table came out as one.
  3. Leave joining across pages on for a table that continues overleaf, or switch on a sheet per page to keep them separate.
  4. Leave the header row option on so a heading repeated on a continuation page is not written in as data.
  5. Press Convert to Excel.
  6. Check the first and last rows of each sheet, where detection is least certain.

Two facts drive the detection. The first is that numeric columns align on their right edge, not their left, so a detector clustering only the start of each run reads 12.00 and 1,234.00 as two different columns - exactly on the financial statements that are most of what anyone converts. Alignment here is scored on the best of the start, end and centre consistency, so a left-aligned description column and a right-aligned money column both score well in the same table.

The second is that a wrong table is worse than no table. Two columns of prose have pin-sharp left edges and a wide gutter down the middle, and by alignment alone they look better than most real tables. Geometry cannot separate them, so there is a further gate on what the columns contain, and it rejects outright rather than quietly lowering the score. That is why a page of newspaper-style text does not arrive as a two-column spreadsheet.

Numbers keep the formatting they were printed with, and it has to come off before a cell can hold a real number: thousands separators, currency symbols, trailing percent signs, and negatives written in accountancy brackets, which become a minus. A comma is only removed when exactly three digits follow it, because it is a thousands separator in English and a decimal point in Indonesian. Anything still ambiguous stays text on purpose - a misplaced decimal point is worse than an unformatted cell.

When nothing reads as a table, the tool says so and points at PDF to text rather than handing you an empty workbook, which would imply the document had nothing in it. Lowering the confidence threshold is the first thing to try; reading the page with PDF to text is the second.

Detection and the writing of the workbook both happen on your device, the OOXML built and zipped in the browser, so a bank statement is never sent anywhere to be read. That matters more here than on most tools: the documents people convert to spreadsheets are usually the ones with account numbers on them.

What this tool cannot do

  • Tables drawn with ruled lines are still found by their text alignment. The rules themselves live in the page graphics, which this pass does not read, so a table held together only by its lines and irregular spacing may be missed.
  • Merged cells are not reconstructed. A heading spanning three columns lands in the first of them and the other two come out empty.
  • Only values come across. Fonts, colours, borders, column widths and number formats are not carried into the workbook.

Questions people ask

How does it find the tables?
By geometry. The text layer gives every glyph a position, and a block of lines whose ink separates into the same vertical gutters row after row is treated as a table. Each candidate is scored on how consistently its columns line up, and anything below your threshold is discarded. A separate content check rejects columns of prose, which otherwise score higher than real tables.
Will the numbers arrive as numbers I can sum?
Yes, when they are unambiguous. Currency symbols, thousands separators, trailing percent signs and accountancy brackets are stripped, and bracketed values become negative. A comma is only treated as a thousands separator when exactly three digits follow it, since it is a decimal point in Indonesian. Anything that does not parse cleanly stays text rather than being guessed at.
It missed a table, or found one that is not there. What now?
Move the confidence threshold. It runs from 30 to 90 and starts at 55; lowering it admits weaker candidates and finds more tables at the cost of some false ones. If nothing is found at any setting, the page may have no real column structure, and PDF to text will show you what it does contain.
My table runs over several pages. Will it be split up?
Not by default. A table starting at the top of a page with the same number of columns as the one that ended at the bottom of the previous page is treated as a continuation and joined into one sheet, and its repeated heading row is dropped rather than written in as data. Turn on a sheet per page to keep them apart.
Is my statement uploaded anywhere?
No. Detection and the writing of the workbook both happen in your browser, and no part of the document is transmitted. This is checkable in the network tab of your developer tools, where one request asks whether you have tasks left - a tool name and a hash, never a cell of your data.

Related tools