PDF to Excel
Pull tables and text out of a PDF and into a spreadsheet.
or drop files anywhere on this page
Your files stay in this browser. Nothing is uploaded.
About PDF to Excel
This tool converts a PDF to Excel in your browser, turning the tables it finds into an .xlsx spreadsheet or into CSV files. Numbers, currency amounts and percentages land in cells as real values, not text, so you can sum and sort them straight away. The PDF is read by code running in your browser tab and is never sent to a server.
Reach for it when a PDF holds pricing, schedules or any grid of data you want to work with in Excel. The tool works only from where each piece of text sits on the page, never from table borders. A page with clean, evenly spaced, left-aligned columns converts far better than one with merged headers, right-aligned figures or a busy layout.
How it works
- Add one or more PDFs. A file locked with an open password gets its own box next to the file name; fill that in first.
- Pick Keep style and layout for a page that mixes paragraphs with tables, or Optimized for tables when the page is only a table, then click Continue.
- Choose xlsx or csv as the Output format.
- Under Sheets, choose One sheet per page, or Single sheet to put every page on one sheet.
- Click Convert to Excel.
- Download the spreadsheet. It takes the PDF's own name, and whenever the run produces more than one file, several PDFs or a csv split page by page, they arrive in a ZIP.
How a table is found, and where it goes wrong
The tool groups the page’s text into lines, then looks for two or more consecutive lines that each break into separate pieces of text. Where those pieces start decides the column edges: starts within about 4 points of each other count as one column, and each piece goes into the nearest column. Anything that does not form a table is treated as plain text.
- Right-aligned figures: numbers that share a right edge start at different points, so each ragged start can become a column of its own, leaving extra, mostly empty columns with the figures spread across them.
- Wrapped cells: a cell whose text wraps onto a second line leaves a row with one piece of text, which ends the table there. The rows after it form a second table if at least two follow; a lone row is treated as ordinary text.
- A single row of columns is not a table; two consecutive rows are the minimum.
- Two or more consecutive paragraph lines that each switch between regular and bold text partway through can be mistaken for a table with many empty columns.
What lands in the cells
Each cell’s text is checked to see whether it is a number. Nothing else about the PDF’s styling is kept, whichever conversion you chose: no fonts, bold, colours, borders or column widths.
- 120,000 becomes the number 120000. A currency amount such as $1,250.00 or € 12.50 becomes a number shown with two decimals and a thousands separator, and the symbol ($, €, £ or ¥) is dropped.
- 33% becomes 0.33 with a percent format that shows no decimals, so 12.5% is stored as 0.125 but displays as 13%.
- Stays as text: negatives in brackets such as (400), dates such as 12/03/2025, amounts with words attached such as USD 100, and European figures such as 1.234,56.
- Check for two mistakes: a comma is always read as a thousands separator, so 1,25 becomes 125, and leading zeros are dropped, so 007 becomes 7. Check ZIP codes, part numbers and account numbers.
- Lines outside a table: Keep style and layout writes each one as a row with its text in column A. Optimized for tables drops them.
Sheets, CSV files and a worked example
With One sheet per page, the sheets are named Page 1, Page 2 and so on. A sheet comes out empty only when its page yielded no rows at all, which with Optimized for tables means any page that held no table. With Single sheet, everything goes on Sheet1 with a blank row where each page ended, and columns are counted from the left for every table. A csv holds only one sheet, so with One sheet per page a multi-page PDF gives one file per page, named like report-Page 1.csv, in a ZIP. The csv is plain UTF-8 text with no byte order mark; if Excel shows accented characters wrongly, import it with Data, From Text/CSV and choose UTF-8.
Take a 12-page report with a quarterly table on page 5, headed Quarter, Revenue, Cost and Margin. Convert it with Keep style and layout, xlsx and One sheet per page. On the sheet named Page 5, the heading and paragraph lines sit in column A and the table follows as rows, with revenue as numbers and margins as percentages. If the Cost heading is centred a few points to the right of its figures, the result has an empty column between Revenue and Cost, and the Cost figures sit one column to the left of their heading. Every number is there; you move the cells across in Excel.
Frequently asked questions
A table is only recognised where two or more rows in a row each split into pieces that share the same left edges, giving at least two columns; anything else is treated as plain text and dropped into column A. A busy layout, uneven spacing, right-aligned figures or wrapped cell text can confuse that detection, so a row or two may need moving by hand.
No. This converter does not create merged cells; a heading that spans several columns in the PDF becomes plain text sitting in one cell, with the columns below it split out normally.
Yes. Values like "120,000", "$1,250.00" and "33%" are stored as real numbers, not text, with a percentage kept as a fraction and a percent format applied. The currency symbol is not kept, and a value with a decimal comma such as 1,25 is read as 125.
No. Despite the name of the Keep style and layout choice, fonts, bold, colours, borders and column widths are not carried over. What is kept is the order of the lines, the detected columns, and number and percent formats.
It keeps only the rows that were detected as part of a table and drops surrounding paragraph text, which suits a page that is only a table. A page with no detected table gives an empty sheet.
Yes. Choose csv as the output format. With One sheet per page you get one csv per page, bundled into a ZIP; choose Single sheet for one file.
This tool reads an existing text layer; a scanned page is just an image and has nothing to extract, so it gives an empty sheet. Run the OCR tool on the PDF first, with PDF (searchable) as the output, then convert that file here, and check every table.
One sheet per page keeps each page’s table separate and is usually easier to check for mistakes. A single sheet suits a table that continues across pages.
Yes. Reading the pages and writing the spreadsheet both happen inside the tab, on your own machine; nothing about the file leaves it. The code sets no page or size limit, so the practical ceiling is your device’s memory. A PDF that needs a password shows a password box, and converting waits until it is accepted.
Related tools
This tool ran entirely in your browser and nothing was uploaded. Your Recent files list keeps a copy of local files under 5 MB until you clear it. How your files are handled.