Extract Tables from PDF to CSV

Extract tables from PDF files with selectable text and download the rows and columns as one CSV file. Words on the same line become one row, ordered left to right, ready for Excel, Google Sheets or LibreOffice Calc.

4.2 / 5 (584)

// how it works

How to Extract Tables from a PDF in 4 Steps

Upload a text-based PDF with a table in it and download the data as a CSV file.

  1. 01Pick one text-based PDF with a table in it.
  2. 02Check the selected document and click Extract Table.
  3. 03Wait while the table text is grouped into rows and columns.
  4. 04Download the CSV file and check its rows and columns.

// why pdf-file

PDF Table Extract Features and Limits

  • Fast extractionTurn text-based PDF tables into CSV in seconds.
  • Free to useNo registration, no subscription fee, and PDFs of up to 100 MB.
  • Rows and columnsText gets grouped by baseline and by left-to-right position.
  • Private processingUploaded files get deleted automatically within two hours.
  • Simple workflowUpload a PDF, extract the table, download the CSV.
  • Spreadsheet-readyOpen the CSV in Excel, Sheets or whatever spreadsheet app you use.

Extract Tables from PDF: How It Works and a Real Test

To extract tables from PDF reports, invoices or statements, you need the values back in rows and columns, not as one block of pasted text. This tool reads the text of every page, puts words sitting on the same line into one row and orders each row from left to right. You download the result as a CSV file for Excel, Google Sheets or LibreOffice Calc.

Extract a PDF table to CSV

How to extract a table from a PDF

  1. Upload one PDF with selectable text, up to 100 MB.
  2. Check the preview and click Extract Table.
  3. Wait while the text of every page gets grouped into rows.
  4. Download the CSV file and open it in your spreadsheet program.
Extract tables from PDF screen with pdf-table-extract.pdf uploaded, showing a Name, Age and City table, and the Extract Table button
Our test file holds a small three-column table: Name, Age and City.

How rows and columns are rebuilt

A PDF usually stores a table as loose pieces of text, each with its own position, and there's no grid behind them. The tool reads those positions and puts pieces whose baselines lie within about 4 points of each other into the same row.

Inside a row, the pieces are sorted left to right and each one becomes a cell. Values with a comma or a quote in them get quoted the way the CSV format in RFC 4180 describes, so they stay in one cell.

It doesn't detect column borders, though. So an empty cell in the PDF leaves no gap, and the values after it move one column to the left.

Rotated and landscape pages

Some PDFs put a wide table on a page that's stored portrait and shown landscape through a rotation setting. This tool reads text positions as the page is displayed, after that rotation, so the rows stay rows.

In October 2026 we built a two-page statement with the columns Date, Description, Money in, Money out and Balance, and made the second page one of those rotated landscape pages. We got back a 459 B CSV with the same five rows for both pages:

Date,Description,Money in,Money out,Balance
02/09/2026,Opening balance,"1,500.00"
03/09/2026,Salary ACME Ltd,"3,200.00","4,700.00"
05/09/2026,Rent September,"1,250.00","3,450.00"
08/09/2026,"Card payment, Grocer",84.30,"3,365.70"

Our PDF to CSV converter reads pages with the same code and returned the same 459 B file. Use this tool for a PDF over 25 MB, up to 100 MB; below that, either one gives you the same CSV.

What still needs fixing by hand

You can see the shift from above in the sample. Rent and the card payment are money out but sit under Money in, and each balance moved left, all because blank cells leave no gap. The wrapped line "reference 4471-2209" under the card payment was a single piece of text, so it got dropped.

What happens to a table that runs over several pages?

Every page's rows land in one CSV in page order, but the repeated header and any two-part page header or footer come along too. In October 2026 we extracted a three-page statement with 15 transactions, a header row on every page, a title line with the bank's name and a footer reading "Page 1 of 3" next to a print date.

The 649 B CSV had 24 lines: the 15 transactions, plus the header row, the title line and the footer three times each. Title and footer each held two pieces of text, so they counted as rows; a footer of one piece, like a lone page number, is left out.

Before you sort or total, filter out the lines that start with your header word and the page footer. The reference 00123 and the 16-digit 1234567890123456 came through in the CSV exactly as printed, so check them again once your spreadsheet has opened the file.

Which PDFs work best?

Text-based PDFs with a clear grid

Reports exported from accounting, office or banking software work best, especially tables with one line per row and a value in every cell. If you can highlight a word in your PDF viewer, there's text the tool can read.

Scanned pages need OCR first

A scan is a picture of a page with no text positions, so the tool finds no table data and the extraction fails. Put the file through OCR PDF to add a text layer first, then check the extracted numbers carefully.

Wrapped text and merged cells

The second line of a wrapped label is left out unless that line also holds other cells, and a merged heading won't line up with the columns underneath. Lines with only one piece of text (many titles, for instance) are skipped, but other text on the page can still end up as rows.

What happened when we tested PDF Table Extract

We uploaded our small test file pdf-table-extract.pdf (930 B, 1 page), a three-column table with a header row and two data rows. The download, pdf-table-extract_TableExtract.csv, was 41 B. Tested in October 2026.

Extract tables from PDF results screen saying the table is ready, with a Download button
The results screen after extracting the test table.

How to check the CSV before you use it

Count the rows against the source table, then spot-check the first, middle and last ones. Look hard at dates, decimal separators, negative numbers and codes with leading zeros, since spreadsheet programs like to change how those display.

Delete rows that came from page headers, footers or notes once you're sure what they are. A line that looks out of place might be a real subtotal, so check it against the PDF first.

For bank and card statements, our guide on extracting transactions from a PDF statement to a spreadsheet takes you through the cleanup step by step.

Other ways to reuse PDF table data

Need an XLSX file rather than CSV? PDF to Excel puts selectable PDF text into spreadsheet cells, and on our sample statement it kept money in and money out in separate columns. To turn a cleaned CSV back into a printable document, use CSV to PDF.

When the table sits on a few pages of a long report, pull those pages out first with our tools to extract and organize PDF pages, so the rest of the report stays out of your CSV.

Limits and privacy

Each run takes one PDF of up to 100 MB and reads every page. Your original PDF isn't changed.

The file is processed on our server and deleted automatically within two hours.

Frequently Asked Questions about extracting tables from PDF

Can this tool extract a table from any PDF?

It needs a PDF with selectable text. Scanned pages, merged cells and irregular layouts need OCR first or cleanup afterwards.

What file format do I get?

A CSV file, which opens in Excel, Google Sheets, LibreOffice Calc and most data tools.

Does it extract tables from every page?

Yes. It reads all pages and writes their rows into one CSV, page after page.

Why are some values in the wrong column?

The tool doesn't detect column borders, so an empty cell in the PDF pushes the values after it to the left. Fix those rows in your spreadsheet.

Is PDF Table Extract free to use?

Yes. There's no registration and no subscription fee.