PDF Table to CSV or Excel

Pull the rows out of a statement, an invoice or a report and get a spreadsheet, with the column headings kept and the credits still negative. The file never leaves your device.

A PDF does not contain a table It contains glyphs, each placed at a coordinate. The rows and columns you can plainly see are an optical effect of that placement — there is no structure underneath to read out. So everything below is inferred from where the text sits, and it can be wrong. What this tool can honestly offer is to show you what it inferred, say where the inference was weak, and make its mistakes visible rather than plausible.

Your file

Where this goes wrong, and how to tell

Column boundaries are found by looking for vertical bands of whitespace that run the height of the table. That works for left-aligned and right-aligned columns alike, which matters because a statement puts descriptions on the left and amounts on the right — any method keyed to one alignment mangles the other.

It fails in three recognisable ways.

Everything lands in one column. No gap ran the full height. Usually two columns are touching. Drag the gap sensitivity down.

Two columns are read as one. Same cause, less severe. The warning about a column that aligns neither left nor right is the tell.

Rows appear that are not transactions. A description wrapping onto a second line looks like a row with one cell filled. Those are counted and reported, and they are usually a continuation of the row above.

Negative numbers, and the sign that goes missing

Statements have several ways of writing a credit, and a PDF preserves whichever one was used: (500.00), 500.00-, 500.00 CR, -500.00. All four are read here as negative five hundred.

This is worth caring about because the failure is quiet. A tool that reads (500.00) as positive flips the sign on every credit in the file, and the resulting total is wrong but entirely plausible — you would have to add the column up by hand to notice.

Scanned pages will not work

If your PDF is a photograph or a scan, there is no text in it to position — only an image of text. This tool will find nothing, and it will say so rather than returning an empty table. Getting text out of a scan needs optical character recognition, which is a different job with a different and much larger error rate.

The quick test: try to select a line of text in your PDF viewer. If you cannot, there is no text to extract.

Nothing is uploaded

A bank statement is about as sensitive as an ordinary document gets: it lists where you were, what you bought, and when. This page reads it with Mozilla’s pdf.js running inside your browser, and builds the spreadsheet in the same place. Your file is never uploaded. There is no server here to upload it to.

One request is made, and it is worth being exact about: the first time you use this page it downloads the pdf.js library itself, from a public code CDN. That request happens before you choose a file, carries nothing about you, and would look identical whoever made it. After that the page runs entirely on your machine.

Worth checking rather than believing. Open your browser’s network tab, load a file, and watch: after the library arrives, choosing and processing a PDF produces no requests at all.