Convert a PDF to Excel
Pull the table out of an invoice, a bank statement or a price list into Excel so you can sum, filter and sort it, without copying cell by cell and without sending the document to a server.
What it does
The tool reads the PDF text with pdf.js, groups fragments that share a baseline and works out where the columns are from the vertical gaps that repeat. It then writes a real .xlsx (SpreadsheetML) with JSZip, in a single sheet called “Table”.
You can choose which pages to process, adjust the column spacing when columns are very close or very far apart, ignore single-cell headings, and decide whether numeric cells are stored as numbers (so they can be summed) or as text.
Everything happens in your browser: the PDF is never sent anywhere. You can verify it by opening the Network tab of your dev tools while converting.
How to use it
- Open PDF to Excel.
- Add the PDF that contains the table.
- If the document has several pages, type the range in “Pages” (for example
1-2) or leave it empty for all of them. - Adjust “Column spacing” if the result comes out glued together or split into pieces.
- Press “Convert to Excel” and download the .xlsx file.
Why ConvUp
Real columns
Every value lands in its own cell instead of everything in column A.
Numbers that add up
Numeric cells are stored as numbers, so SUM and pivot tables work.
No upload
The PDF is processed on your machine; the file never travels to a server.
Why PDF to Excel comes out wrong on almost every site
A PDF does not store tables: it stores text fragments with a position. The line that looks like a row on screen is really a group of loose pieces that happen to share the same height. Rebuilding the table means guessing where each column starts and ends, and every program does that with a different heuristic.
That is where the three classic failures come from: everything piled into column A, columns split in two because the text was too close, and rows shifted because a cell wrapped onto two lines. This tool exposes the heuristic in the “Column spacing” selector so you can correct it instead of guessing.
Which documents convert well and which do not
Tables generated by software convert well: supplier invoices, PDF bank statements, price lists, reports exported from an ERP. The text is native, the columns are aligned and the grid is regular.
Scans without OCR convert badly, as do PDFs with tables drawn as an image, documents with cells merged across several rows, and pages that mix two different tables. In those cases the output is a starting point you still have to fix by hand, not a finished spreadsheet.
Checking the result in one minute
Before working with the sheet, check three things: the row count matches the PDF, the amount column sums what it should, and codes with leading zeros still have them. If something is off, convert again with a different column spacing or with numeric conversion unticked.
If you only need the data to paste into another app, the CSV version in PDF tables to CSV gives the same content as plain text and is easier to debug in an editor. And if the PDF is a scan, the order is always the same: OCR first, Excel afterwards.
Frequently asked questions
Is my PDF uploaded to a server?
No. The conversion runs in your browser with pdf.js and JSZip. There is no endpoint that receives the document.
Does it work with a scanned PDF?
Not directly: a scan is an image with no text to extract. Run it through the <a class="underline underline-offset-2" href="pdf-ocr.html">OCR PDF</a> tool first to add a text layer, then convert that file to Excel.
Why do leading zeros disappear?
If a cell is stored as a number, <code>007</code> becomes <code>7</code>. Untick “Convert numeric cells to numbers” when the column holds a code, an IBAN or a phone number.
How many sheets does it create?
One sheet called “Table” with all selected pages one after another. If you want one sheet per page, convert each range separately.
Does it open in Google Sheets?
Yes. The file is a standard .xlsx: it opens in Excel, LibreOffice Calc, Google Sheets and Numbers.
What happens to merged cells and subtotals?
They become ordinary rows. Subtotals usually end up on their own row, with the label in one cell and the amount in another: check them before summing the column.