Home · Free tools · PDF to Excel
PDF to Excel
Drop a PDF below and the tables inside it come back as rows and columns, ready to download as .xlsx or CSV. It runs inside this browser tab — the file is not uploaded to us or to anyone else. Column boundaries are found from the vertical whitespace between columns rather than from ruled lines, so a table with no borders survives. A scanned PDF cannot be read here: a scan is a picture of a page with no text in it, and recovering text from a picture takes OCR, which this page does not do.
Open a PDF
Drop a .pdf here, or click to choose one
Nothing is uploaded. The file is read by JavaScript in this tab and never leaves your computer — no server sees it, and closing the tab throws it away.
Three steps, and where each one happens
- Drop the PDF in. It is read by JavaScript in this tab. There is no upload step because there is nowhere for it to go.
- Pick a page. Only pages that contain something table-shaped are listed, so a cover page or a page of prose never appears in the dropdown.
- Download it. .xlsx contains every page found, one page per sheet. CSV holds a single table, so it contains the page currently on screen. You can also copy the table as Markdown.
The preview on screen stops at 200 rows to keep the page responsive. The download is not truncated — it has every row that was found.
Why copying the table pastes it into one column
The usual approach is to select the table in a PDF reader, copy, and paste into a spreadsheet. It fails often enough that “how to paste a PDF table into Excel without it going into one column” is its own genre of question. The reason is structural, not a bug in your reader.
A PDF does not contain a table. A page in a PDF is a content stream: a list of drawing instructions that select a font and place a run of characters at a coordinate. Rows, columns and cells are things a reader infers from where the ink landed. Unless the file was deliberately produced as a tagged PDF — a feature added in PDF 1.4 and still mostly used for accessibility — the operators that draw the page carry no description of what they are drawing, as Overleaf's technical introduction to tagged PDF sets out (An introduction to tagged PDF files, read 2026-09-06). Copying takes the characters and drops the coordinates, which is exactly the half you needed.
This page keeps the coordinates and rebuilds the table from them. The PDF is parsed with Mozilla's pdf.js — the same engine that renders PDFs inside Firefox — which reports each run of text with its position and width.
Columns come from the whitespace, not the ruled lines
Looking for the ruled lines is the obvious approach and the wrong one: the lines are drawn as graphics and never appear in the text layer at all, and plenty of real tables have no ruling to begin with.
What this page does instead: project every piece of text on the page onto the horizontal axis as an occupancy histogram at one-point resolution, then look for the bands where no row has any text at all. Those bands are the column boundaries. Because the whole run is projected, not just its left edge, the method behaves the same on left-aligned, centred and right-aligned columns — and it is the right-aligned money column that breaks left-edge clustering.
Two thresholds decide the result, and both are calibrated from real documents rather than derived from anything:
- A gap counts as a column boundary at the larger of 4 points or one character width, where character width is the 75th percentile of width-per-character across the runs on the page. A fixed point value is not enough: in a real invoice the space between two words measured 7.2 points and got promoted to a column boundary, splitting a supplier name in half.
- A line that spans less than 60% of the widest line is dropped as a title or a footnote, before the columns are computed. Including one title line closes the gaps and collapses the whole table into a single column. Subtotal lines survive this test, because a label at the left and a number at the right still span the full width.
Each run is assigned to a column by its centre, and two runs landing in the same cell are joined with a space only when the measured gap between them is at least half a character width — otherwise a heading that the PDF happened to split into two runs would come back with a space inserted into the middle of a word.
Four things it deliberately does not do
- No OCR. A scan or a phone photo has no text layer, so there is nothing to read; the page says so rather than returning an empty grid. The test takes two seconds: open the PDF and try to select a number with the cursor. If it highlights, this page can read it. If you can only grab the whole page as one image, it is a scan. What OCR actually is covers the difference.
- No password removal. An encrypted PDF is refused. Open it in a reader, save an unlocked copy, and load that.
- No forcing columns apart. When two columns are printed hard against each other with no gap, they come out joined. Splitting them would mean guessing, and a guess that lands one character off shifts the whole column silently.
- No joining pages together. Page 2 of a statement often has a different column layout from page 1. Concatenating them produces one table with misaligned columns and no error message, which is the worst possible outcome, so each page is solved on its own.
You can verify the no-upload claim yourself
The parsing code contains no fetch and no XMLHttpRequest. Open your browser's
developer tools, switch to the Network panel, leave it recording, and run a file through this page:
nothing goes out. That is a stronger statement than a privacy policy, because it is checkable in
fifteen seconds and does not depend on trusting us.
It matters here more than on most tools. The documents people want tables out of are invoices, payslips, statements and supplier price lists. Every general-purpose online PDF converter that ranks for this query works by receiving your file on their server first, and retention terms vary and are often unstated.
Where to go instead, depending on the document
- A bank or card statement. Use the bank statement converter — it knows what a transaction line is, checks the running balance arithmetic, and recovers the sign of each amount from the direction the balance moved. This page has no idea what the numbers mean.
- An invoice you need fields from, not just the grid. The invoice extraction page lays out the three routes and what each one does with the document.
- A scan. There is no route through this page. The four routes, ranked by accuracy explains which one is left.
- A CSV that Excel is mangling. Different problem entirely — CSV to Excel handles the delimiter and the encoding.
And if the same PDF layout arrives every month, converting it by hand every month is the wrong shape of solution. TableDI is a desktop spreadsheet workspace that runs on your own machine, where the import and clean-up steps are saved and re-applied to next month's file.
Questions people ask
How do I convert a PDF table to Excel for free?
Drop the .pdf into the box on this page. The tables are read out as rows and columns and can be downloaded as .xlsx or CSV. There is no sign-up and no upload — the file is parsed by JavaScript in your browser tab. The one limit is that the PDF must contain real text; a scanned image of a page cannot be read.
Why does my PDF table paste into a single column?
Because a PDF stores a table as characters placed at coordinates, not as a table. Copying takes the characters and discards the coordinates, so everything arrives as one stream of text. This page keeps the coordinates and reconstructs the rows and columns from them.
Does this work on a scanned PDF?
No. A scan is an image with no text layer, so there is nothing to extract without OCR, and this page does not do OCR. Check by trying to select a number in your PDF reader: if it highlights, this page can read the file.
Will it work on a table with no borders?
Yes — column boundaries are found from the vertical gaps between columns, not from ruled lines, so an unruled table is no harder. The opposite case is the limit: columns printed with almost no gap between them come out joined rather than split at a guess.
What happens with a multi-page PDF?
Every page that contains a table is listed and can be viewed one at a time. The .xlsx download contains all of them, one page per sheet. CSV can only hold one table, so it exports the page on screen. Pages are never concatenated, because their column layouts can differ.
Is my file uploaded anywhere?
No. The code contains no network calls; you can leave the Network panel of your browser developer tools open while you use the page and watch that nothing is sent. Closing the tab discards the data.
Can it open a password-protected PDF?
No. Open the file in a PDF reader, save an unlocked copy, and load that copy here instead.
Related
Do this on your own machine instead
TableDI is a desktop spreadsheet workspace that runs entirely on your machine. Import the file, fix it, chart it — nothing is uploaded, and there is no account to create.
Free forever, not a trial — no account, no card. macOS today; a Windows build is in progress. What the paid tier adds.
Last reviewed 2026-09-06 by the TableDI team. Something wrong on this page? Tell us — it is one inbox, read by the people who build TableDI.