Pull tables out of a PDF into proper Excel rows and columns. Useful for getting numbers out of invoices, statements, and reports you can already see.
This is table hunting, not a full layout conversion. pdfplumber looks for ruled or aligned cell grids on each page, writes those rows into an .xlsx, and falls back to one text line per spreadsheet row when a page has no detectable table. It is the right tool for invoices and statements you can already select text in — not for scans.
PDFs with clear ruled lines between cells extract reliably. Tables laid out with whitespace alone sometimes collapse into one column — for those, AI Extract does a better job.
Image-based PDFs have no extractable text layer. Route the file through AI Scan to Text first to build one, then run this tool on the resulting text PDF.
Extraction isn't perfect on multi-table or merged-cell pages. Scan the first 10 rows before trusting the full extract — especially for financial data where a shifted column destroys the totals.
The same fitz pre-flight used by compress and convert rejects encrypted or broken files first. Surviving files are opened with pdfplumber. extract_tables() runs on every page; each row is appended to an openpyxl sheet, empty cells as empty strings.
If a page has no detectable grid, the page's extract_text() is split on newlines and each line becomes a single-cell row. That keeps invoices with a heading paragraph from disappearing, at the cost of looking like a list rather than a grid.
After each extracted table the writer appends an empty row. That is the only 'structure' we add — there is no attempt to name sheets per table or to rebuild merged headers. Spot-check before you sum a column.
It works best for PDFs with clear table structures. Scanned documents or complex layouts may not convert perfectly.
No — scanned PDFs contain image data, not text. Use AI Scan to Text first, then extract, or use AI Extract on the original if you want the model to read the page.
No — PDFs do not store formulas. Only the visible values are extracted. You can add your own formulas after opening the file in Excel.
Each table is written in order. A blank row is inserted between tables so you can see where one grid ended and the next began.
A standard .xlsx file (sheet name: Extracted Data) compatible with Microsoft Excel, Google Sheets and LibreOffice Calc.
This tool is geometric — it looks for cell grids. AI Extract sends the text to xAI and asks for named fields. Use this for clean tables; use AI Extract when the 'table' is really a paragraph of amounts and dates.