Extract Table Rows From a PDF Into an Excel Workbook

Rebuild the rows and columns in a PDF as a real .xlsx spreadsheet you can sort and calculate on.

About the PDF to Excel Converter

Rather than dumping a PDF's text into one column, this converter works out where the rows are. Every piece of text on a page carries a position, and the tool groups items that sit at the same height into a single row, then orders them left to right to form the cells. The result is written as a genuine .xlsx workbook with one sheet named Extracted, and a blank row separates each page of the original.

That positional approach is what makes a priced quotation or a statement of transactions come out usable instead of as a wall of text. It also sets the boundaries of what the tool can do: it infers structure from where characters were drawn, so it reads a well-aligned table well and struggles where a human eye would rely on ruled lines. For finance and procurement work that cannot be routed through an upload form, the parsing happens entirely in the browser.

Key Features

  • Rows inferred from position: Text sharing a vertical position is grouped into one row, so tabular data keeps its shape.
  • Cells ordered correctly: Within each row the fragments are sorted by horizontal position to reconstruct the column order.
  • A real workbook: The output is a true .xlsx file rather than a renamed CSV, so it opens natively in Excel, Numbers and LibreOffice.
  • Pages kept apart: A blank row is inserted between pages so you can see where each one ended.
  • Small tolerance for wobble: Items within a few units of the same height still count as one row, which absorbs the slight baseline variation typical of PDFs.

How to Use the PDF to Excel Converter

  1. Add the PDF containing the table you need.
  2. Press convert and watch it read each page in turn.
  3. Download the .xlsx file and open it in your spreadsheet application.
  4. Tidy any rows where the original layout confused the column detection.

How It Works

Text is read with pdf.js, which reports every text item along with a transform matrix giving its position on the page. Items whose vertical coordinates fall within three units of each other are treated as one row, each row is sorted by horizontal coordinate, and SheetJS assembles the arrays into a workbook written out as xlsx. The known weaknesses all come from working with positions rather than real cell boundaries: a cell whose text wraps onto two lines becomes two rows, merged cells lose their span, closely spaced columns can merge, and a scanned PDF yields nothing at all because no text objects exist to position.

When You Need It

A procurement analyst comparing three suppliers receives every quotation as a PDF and needs the line items side by side in a model before a decision. Retyping several hundred rows invites errors, and the pricing is commercially confidential under the tender terms, so passing the quotes through an online extraction service would breach the process. Bookkeepers pulling transactions out of a PDF bank statement and analysts lifting figures from a published annual report meet the same wall.

FAQ

Frequently Asked Questions

Why did one row split into two in my spreadsheet?
A cell whose text wrapped onto a second line inside the PDF sits at a different vertical position, so it is read as a separate row. Merge the two rows manually after opening the file.
Why are two columns squashed into one cell?
When columns sit very close together the fragments end up grouped as neighbouring text on the same row. Widening column gaps is not possible after the fact, so those rows need splitting by hand.
Can it read a table from a scanned PDF?
No. Extraction relies on text objects that carry position data, and a scan contains only an image of a table. There is no character recognition step, so the workbook comes back empty.
Is the file a real Excel workbook or a renamed CSV?
A real .xlsx workbook, written with a proper sheet, so Excel opens it without a text-import wizard and formulas can reference the cells immediately.
Do the supplier quotes get sent anywhere during extraction?
They stay local. pdf.js reads the pages and SheetJS builds the workbook inside your browser, so pricing covered by a tender confidentiality clause is never handed to a third-party converter.