Skip to main content

PDF to CSV

Extract tables from a PDF as a CSV file ready for spreadsheets.

No watermarkFree & unlimitedRuns in your browser

Add a PDF to extract tables

Files never leave your device. Everything runs locally in your browser.

About PDF to CSV

PDF to CSV lifts tabular data out of a PDF and writes it to a single comma-separated file you can open in any spreadsheet. There is no table markup inside a PDF to read, so PDFChamp infers the structure: it takes the positioned text runs pdf.js reports, groups them into rows by vertical position, works out column boundaries from the horizontal gaps, then snaps each run into that grid. Typical jobs are pulling a price list out of a supplier catalogue, getting quarterly figures out of an annual report and into a model, importing a delivery schedule, or turning a printed timetable into something sortable. If you searched for convert PDF table to CSV, extract tables from PDF, or PDF to spreadsheet, this is the tool — its workbook counterpart is PDF to Excel.

PDF to CSV specs

Key facts about PDF to CSV on PDFChamp
PriceFree ($0) — no paid tier
AccountNot required
WatermarkNone
Where it runsIn your browser, on your device
File uploadNo file is uploaded
InputPDF (1 file)
OutputCSV
File size limitLimited only by your device's memory
Works offline after the page loadsYes

How to use PDF to CSV

  1. Drop the PDF

    Add one PDF to the upload panel. Detection runs immediately: "Detecting tables…" shows while it works, then the status line reports how many tables were found across how many pages.

  2. Choose the pages

    The Pages chips are All pages and Range. Picking Range reveals a Page range field that accepts a list like 1, 3-5, 8; the hint shows the valid span, and the export is blocked with a specific error if a number does not exist in the document.

  3. Decide about extra tables

    Under "Multiple tables on one page", All tables exports everything detected while First only keeps the first table on each page — useful when a repeated header block is being read as a second table.

  4. Check the preview

    Each detected table is previewed with its page number, its row × column count and its first ten rows, with the number of remaining rows underneath. This is where you catch a misread grid before exporting.

  5. Download .csv

    Press Download .csv. Every selected table is concatenated into one file named after your PDF, with a blank row separating each table from the next.

Frequently asked questions about PDF to CSV

The columns came out shifted or merged — can I fix it?

Misaligned columns come from the detection step rather than from the CSV writing, and the fastest fix is usually to narrow what you export. PDFChamp finds columns by looking for horizontal gaps wide enough to be gutters rather than word spacing, and by preferring the grid implied by rows that look tabular on their own. A full-width title or a paragraph of prose sitting inside the table block can still stretch one column across the whole page. Set the Pages chip to Range and export the single page you care about, so another page's layout cannot influence the grid, and use First only if a header block is being detected as its own table. If it still refuses to come out, PDF to text gives you the raw content to reshape by hand.

Nothing was detected in a PDF full of tables — why?

An empty detection on a PDF that visibly contains tables has two usual causes. The first is a scan: if the pages are images there are no text runs to cluster, so no table can be found — run OCR PDF over it to add a text layer, then come back. The second is a table drawn without real gutters, where cells are packed tightly or the visual structure comes entirely from ruling lines while the text runs nearly touch. Detection looks at text positions, not at the lines drawn on the page, so a heavily ruled but cramped table can read as ordinary prose. A block also has to reach at least two columns and two rows to count as a table at all, which filters out stray headings but discards very small tables too.

What happens to merged cells and multi-line rows?

Merged cells do not survive as merges, because CSV has no concept of one. A cell spanning three columns lands in the first column it overlaps and the rest are left empty, so that row looks shorter than its neighbours until every row is padded to the same width on export. A row whose text wraps onto a second visual line is treated as two rows, since rows are grouped by vertical position and a wrapped line sits at a different height. Nested or stacked headers usually produce two header rows rather than one combined header. None of that is corrupted data, it is structure you may need to tidy in the spreadsheet — and the ten-row preview shows you exactly what you will get.

How do multiple tables end up in one CSV file?

Every selected table is written into the same file one after another, separated by a single blank row, and the file is named after your source PDF. That keeps the export to one download, but a spreadsheet treats the whole thing as one sheet, so a file holding four tables of different widths will have ragged columns below the first blank row. There are two ways out: set the Pages chip to Range and export each page separately for one clean file per table, or use PDF to Excel instead, which puts each page — or each individual table, if you pick that layout — on its own worksheet. For a single table the concatenation never comes into play at all.

Are numbers exported as numbers, and what about the encoding?

Cells are written exactly as they appear on the page, as text. Currency symbols, thousands separators, percent signs, footnote markers and trailing spaces all come through verbatim, so a spreadsheet may import a column of amounts as text rather than as numbers depending on its locale settings. That is deliberate — reinterpreting values would risk changing them. Use your spreadsheet's text-to-columns or value conversion once the data has landed. The file is UTF-8 and standard CSV quoting is applied, so cells containing commas, quotes or line breaks are escaped correctly and cannot shift your columns. If a European spreadsheet splits nothing at all, tell it on import that the delimiter is a comma.

Is the document uploaded, and is there a row limit?

The document never leaves your browser, and there is no row, table or page limit in the tool. Detection and CSV generation both run in the tab: pdf.js reads the text runs, PDFChamp's clustering builds the grid, and the CSV is assembled locally before the download is triggered. Nothing is posted anywhere, which is exactly why people use it for invoices, payroll exports and anything else they would rather not hand to a conversion service. It is free, needs no account, and the CSV carries no added rows, headers or branding of any kind. The realistic ceiling is memory: a very long document holds every detected table in the page at once while you review the preview.

Why in-browser processing matters

Every PDFChamp tool runs inside this page: the file you choose is read by JavaScript in your own browser and is never sent to a server, so nothing is uploaded, queued, or stored anywhere. That removes the upload wait, the processing queue, and the question of what happens to your file afterwards — the about page compares this architecture with server-side PDF tools.

Last updated

Related tools