PDF to Excel
Each page becomes a sheet. Rows come from shared baselines, columns from the horizontal position of the text, and the result opens in Excel, Numbers or Google Sheets.
How PDF to Excel works
The file is read with a FileReader, rewritten in memory and offered as a download. This is why large PDFs are limited by your device's RAM rather than by an upload size limit. A 200 MB scan never crosses the network, so the slowest part is your own disk.
That is the whole architecture: static files, one script, no upload endpoint to leak or log. Close the tab and the work is gone.
Why a PDF has no table
In a spreadsheet, a cell knows its row and column. In a PDF there is no table object — only glyphs at coordinates, plus thin grey lines that happen to look like a grid. Converting to Excel therefore means inferring structure, not translating a format.
This tool infers two things: rows from text baselines that sit within a few points of each other, and columns from distinct x positions across the page. Everything else — merged cells, wrapped text, a header spanning three columns — is a judgement the reader has to finish in Excel.
Getting the tolerance right
The tolerance slider is the whole conversion in one control. Too tight and one visual row becomes five spreadsheet rows, because the PDF places every word at a slightly different y. Too loose and two separate lines merge into one row of nonsense.
Start at 6 points. Dense tables with a small font need 3–4; a report with generous spacing can take 10. The preview under the button shows the first rows exactly as they will land, so you can adjust before saving.
| PDF you have | What comes out |
|---|---|
| Clean text table, one row per line | A worksheet you can filter immediately |
| Text with wrapped cells | Values in the right columns, wraps split across rows |
| Scanned page | Nothing — no text layer exists; run OCR first |
| Multi-page report | One sheet per page, names Page 1, Page 2… |
Where the numbers come from
pdf.js exposes each text run with a transform matrix. The fourth value is x and the fifth is y measured from the bottom of the page, so the baseline is flipped into screen space before grouping. Nothing is guessed from visual gaps alone: the coordinates are the ground truth.
The workbook is written by SheetJS as a real .xlsx — not a CSV renamed — so Excel opens it without a warning and keeps the sheet names.
How it compares with a converter that uploads
Every web converter solves the same problem the same way: the file goes to a server, a library extracts the text, a spreadsheet is written, and the result comes back as a download. That works, and it also means a bank statement or a payroll sheet sits on a machine you do not control for at least a few minutes.
This page does the extraction in the tab with pdf.js and writes the workbook with SheetJS. The practical differences are the ones in the table, and they are all consequences of that one decision.
| Server converter | This page | |
|---|---|---|
| File leaves your device | Yes | No — there is no upload endpoint |
| Account or email | Often required | Never |
| Page limit | Usually 2–10 free | None imposed by the tool |
| Ads or watermark | Common on free tiers | None |
| Works after the first load | Needs a round trip per file | Yes, the code is already in the tab |
When the output needs a second pass in Excel
Two mistakes are the tool's, not yours, and both are fixable in seconds. If each visual row arrives as two spreadsheet rows, the tolerance is too tight for that font — raise it by two points and convert again. If separate columns collapse into one, the gap between them is smaller than the clustering threshold, so lower it instead.
The other three are properties of the PDF itself. Merged cells become repeated text, because a PDF has no merge: the cell is simply drawn once and spans visually. Wrapped text splits into two rows when the second line sits a full line-height below the first. A header row is just text like any other — nothing marks it as a header, so turn on filtering in Excel and set it yourself.
What to check before trusting a big conversion
Numbers arrive as the strings they were in the PDF. A cell reading 1,234.50 is text, and Excel will not sum a column of text, so convert the column once with Text to Columns rather than retyping values. Currency symbols and thousands separators survive as characters.
For anything longer than a few pages, spot-check the last page: that is where a rotated table or a footer that overlaps the last row shows up. Rotated text (a landscape table inside a portrait page) is the one case this extraction cannot repair, because the x/y coordinates no longer line up with the visible grid.
Good to know
- Works offline once loaded, including on flights and in locked-down networks.
- No file size limit beyond your device's own memory.
- Free to use, with no account and no usage counter.
- Results are produced locally, so they are not logged or shared with anyone.
Questions
Will the table look exactly the same?
The values land in the right cells when the PDF has a real grid. Merged cells, wrapped text and rotated headers need a manual pass in Excel.
Why did it say no text layer?
The PDF is a scan — a picture of text, not text. Run it through scanned PDF to text (OCR) first, then convert that output.
How are columns detected?
Every distinct x position across the page becomes a column boundary; text that starts inside a column belongs to it. The tolerance slider changes how forgiving that is.
Are my files uploaded?
No. pdf.js reads the text and SheetJS writes the workbook, both inside this tab.
Can it read a scanned PDF?
No. A scan has no text layer, only pixels, so there is nothing to group into rows. Run the scanned PDF to text tool first, then convert that output — and expect OCR errors in numbers.
Why is one column split into three?
The tolerance is too loose for the spacing in that table. Lower it by a point or two and convert again; the preview above the button shows the change before you save.
Does it keep formulas or formatting?
Neither. Excel formulas do not exist in a PDF and cell colours are not part of the text layer, so the workbook is plain values and text in the right cells.
Is there a page limit?
No fixed limit — the file is processed in memory page by page, so the ceiling is the free RAM in your tab. A 300-page text PDF is fine on a laptop and slow on an old phone.
Other PDF tools
Keep going
More files tools
Word to PDF
Convert a .docx into a clean A4 PDF: paragraphs, headings and line breaks kept and text wrapped properly. Tables and images are not carried over.
Open toolOrganize PDF Pages
Move pages into a new order, rotate the ones that are sideways and drop the ones you do not need, then download a fresh PDF.
Open toolAudio Trimmer
Load an audio file, drag the start and end markers over the waveform, play the selection and download the cut as a WAV file.
Open toolVideo Converter
Convert MP4, MOV, MKV, AVI or WebM to a universal MP4 (H.264) or a smaller WebM, entirely in the browser with ffmpeg.wasm.
Open toolMKV to MP4
Turn an MKV into an MP4: a fast lossless remux when the codecs already fit, or a full H.264 re-encode when they do not. Runs in the browser.
Open toolMOV to MP4
Convert an Apple MOV file into an MP4 that plays on Windows, Android, smart TVs and every browser. H.264 + AAC with a faststart header.
Open tool