📊

PDF to Excel

Convert PDF to Excel: get the rows of a PDF into a real .xlsx, with columns inferred from the layout.

Your files stay on this device. Nothing is uploaded. How to check

How to use PDF to Excel

1. Drop a PDF that contains a table or a list of figures on the upload box, or click Choose Files. Use Remove File if you picked the wrong one.
2. Click Convert to Excel (.xlsx). Each line of text is split into cells wherever the horizontal gap is wider than a word space, the cell positions across the page are clustered into columns, and plain numbers are written as numeric cells.
3. Click Download File to save the .xlsx and open it in Excel, Google Sheets or LibreOffice Calc. Check the column alignment before you rely on the figures.

Key features of PDF to Excel

📊 Real .xlsx output

The download is a SpreadsheetML workbook built with JSZip, with a single sheet and one row per line of the PDF. Values that look like numbers, including ones with thousands separators, are stored as numbers so formulas work on them.

📐 Columns from spacing

Cell boundaries come from the gaps between text on each line, and an empty cell leaves a gap instead of shifting the rest of the row. Cleanly aligned tables convert well; ragged ones need checking.

🖥️ Nothing is uploaded

The PDF is read and the workbook is built by JavaScript in your browser. Nothing is sent to a server, and there is no account or watermark.

About PDF to Excel

PDF to Excel reads each page's text with pdf.js, groups it into lines by baseline, and splits each line into cells wherever the gap between two runs of text is wider than about nine tenths of the font size. The starting positions of all cells on a page are clustered into column positions, and each cell is placed in its nearest column. A value matching a plain number, such as 1,234.50 or -7, is written as a numeric cell; everything else is text. In a multi-page file each page's rows are preceded by a Page N row.

It is useful for getting a price list, a bank statement or a results table out of a PDF and into a sheet you can sort and sum. PDF has no table structure to read, so the columns are inferred: wrapped descriptions, merged headers or right-aligned figures of different lengths can land in a neighbouring column. No formatting, borders or cell colours are produced. A scanned statement has no text layer and needs to go through OCR PDF first.

When to use PDF to Excel

A supplier's packing list or an order confirmation arrives as a PDF and you need to reconcile it against your own order. Convert it, then use lookups in Excel on the part number column to match lines. Quantities and prices written as plain numbers arrive as numeric cells, so totals can be checked with a formula.

A system that only prints to PDF, such as a till report, a payroll summary or a booking export, produces a table you need to chart or filter. Convert the PDF, delete the Page N rows that separate the pages, and the remaining rows sort and filter like any other sheet.

Lab results, timetables and league tables with fixed columns convert cleanly when every row has a value in every column and the columns start at the same position throughout. If the PDF is a scan of such a table, run OCR PDF first so there is a text layer to read.

Prose documents are the wrong input: every line becomes a row, and wide gaps in justified text can split a sentence into cells. Use PDF to Word for text. Figures with a currency sign, a percent sign or brackets stay as text cells, so strip those characters with find and replace in Excel before summing.

Tips and troubleshooting

  • Failed to convert to Excel: No password given means the file needs a password to open; remove the protection first.
  • Failed to convert to Excel: Invalid PDF structure means the dropped file is not a PDF; the drop zone does not apply the picker's .pdf filter.
  • A cell is stored as a number only when it is an optional minus, digits with optional comma thousands separators and an optional decimal point, such as 1,234.50 or -7. Values like 12%, 1.234,50, (500) or 2024-05-01 are stored as text.
  • Numeric-looking codes lose their leading zeros: 00123 becomes the number 123. If a column holds account numbers or postcodes, format it as text in Excel and put the zeros back.
  • Text that starts within 12 points of the start before it joins the same column, so columns set closer than that become one, and several closely spaced starts can chain into a single column. When two cells on a line snap to the same column, the second moves to the next free column instead of overwriting the first, and a later cell on that line moves along only if its own column is now taken.
  • All pages land on one sheet named Sheet1, with a Page N row before each page's rows in a multi-page file. Column widths are Excel's defaults, so widen them after opening.
  • The result card has no Preview Document button; a .xlsx cannot be previewed on the page. The file takes the PDF's name with an .xlsx extension.
  • A scanned statement needs a text layer before its figures can reach a sheet. How to make a scanned PDF searchable starts with a quick check and covers what affects recognition accuracy, which matters most for numbers.

How PDF to Excel works in your browser

pdf.js parses the file in a worker loaded from cdnjs.cloudflare.com and returns, for each page, the text runs with their x and y positions, widths and font sizes. The script gathers runs into lines by baseline and cuts a line into cells wherever the gap between two runs exceeds nine tenths of the font size; smaller gaps become a space. Cell start positions are then clustered with a 12-point tolerance into columns, and each cell goes to its nearest column.

JSZip then assembles a SpreadsheetML package by hand: xl/workbook.xml with one sheet, xl/styles.xml with a single Calibri 11 font, and xl/worksheets/sheet1.xml where every row is a row element and every cell is either a numeric v value or an inline string. generateAsync returns the .xlsx as a Blob with the Excel MIME type, and Download File saves it from a temporary object URL. The PDF and the rows exist only in the tab; nothing is uploaded.

Frequently asked questions

Is it suitable for bank statements and invoices?

For a statement with cleanly aligned columns, usually yes; check that the columns line up before you rely on the figures. Wrapped descriptions or merged headers can shift cells, because the columns are inferred from spacing rather than read from a table.

Does it output a real .xlsx file?

Yes. The download is a standard OpenXML workbook with one sheet, and numbers are stored as numeric cells so formulas work on them. Formatting, borders and colours are not produced.

Can it read a scanned statement?

Only after OCR. A scan has no text layer, so there is nothing to extract. Run it through OCR PDF first, then convert the searchable PDF.

Why are some figures text instead of numbers?

Only plain numbers, with an optional minus, comma thousands separators and a decimal point, are written as numeric cells. A currency symbol, a percent sign, brackets, spaces or a European decimal comma make the value a text cell. Clean those up in Excel and convert them with VALUE.

Do I get one sheet per page?

No. Every page's rows go on the single Sheet1, one after another. In a multi-page file a row containing Page N marks where each page starts, so you can split the data yourself.

Does it work on a phone?

Yes. The PDF is read and the workbook built in the mobile browser, and the download opens in a spreadsheet app on the device. Checking column alignment is easier on a larger screen, so review the sheet on a computer before relying on it.

Last reviewed