PDF tables → Excel › Guides
Combine the line items from many PDF invoices into one sheet
A month of supplier invoices arrives as separate PDFs, and you need every line item in one spreadsheet to total, filter or reconcile. Here is how to stack them in one pass, with each row labelled with the invoice it came from.
Verified sample Steps and sample produced by running this site's converter on synthetic files.
Steps
- Put the invoices in one folder. This works best when they share a layout, for example all from the same supplier or the same billing system, so the columns line up. The file name becomes the label on every row, so a name with the invoice number in it is the most useful.
- Open the PDF table converter and leave "Skip titles and paragraphs (table rows only)" ticked. That drops the letterhead, addresses and notes, which sit on lines with only one piece of text, and keeps lines that have two or more cells.
- Tick "Combine all files into one sheet", then select all the invoices at once and drop them on the page. Each file is read in turn; the status line shows which one is being read.
- Check each file's card. Every invoice gets a preview with its page count, row count and column count. Look for the same column count on every invoice. A file with a different count has a different layout and its values will sit under different columns in the combined sheet. The green badge reads "all text placed", followed by how many characters of titles and notes (letterhead, addresses, footers) were left out. A yellow "check: some text not placed" badge means some text could not be accounted for; open that PDF and compare.
- Download Excel (.xlsx) or CSV. The combined sheet's first row is "Source file" followed by the first invoice's own column headings. When a later invoice starts with exactly the same header row, that row is dropped, so the headings are not repeated for every file.
- Look for odd headers. If a later invoice's header differs in any way (different wording or an extra column), it is not recognised as a header and stays in as a row; filter the SKU column for header text to find any.
- Reconcile before you rely on it. Sum the Amount column per source file and compare it with each invoice's total. Totals and subtotals printed under the table are included as rows if they sit on a line with two or more cells, so filter them out before summing.
Sample: three invoices into one sheet
Three synthetic one-page invoices from the same made-up supplier, each with the columns SKU, Description, Qty, Unit price and Amount.
| Input | Pages | Table |
| invoice-20481.pdf | 1 | 3 line items |
| invoice-20517.pdf | 1 | 2 line items |
| invoice-20562.pdf | 1 | 4 line items |
After, the combined sheet. Each file's card reported 5 columns and "all text placed · 76 characters of titles/notes left out" (the invoice title and the synthetic-data note):
| Source file | SKU | Description | Qty | Unit price | Amount |
| invoice-20481.pdf | SK-1001 | Steel bolts M8 | 40 | 0.35 | 14.00 |
| invoice-20481.pdf | SK-1007 | Hinge 75mm | 6 | 4.20 | 25.20 |
| invoice-20481.pdf | SK-1009 | Sandpaper P120 | 25 | 0.80 | 20.00 |
| invoice-20517.pdf | SK-1002 | Washers 8mm | 200 | 0.05 | 10.00 |
| invoice-20517.pdf | SK-1008 | Door handle set | 2 | 18.50 | 37.00 |
| invoice-20562.pdf | SK-1004 | Anchor plugs | 100 | 0.12 | 12.00 |
| invoice-20562.pdf | SK-1005 | Cable ties 200mm | 500 | 0.03 | 15.00 |
| invoice-20562.pdf | SK-1006 | Wall brackets | 12 | 2.75 | 33.00 |
| invoice-20562.pdf | SK-1001 | Steel bolts M8 | 1,200 | 0.31 | 372.00 |
In the Excel file, quantities, prices and amounts are stored as numbers, not text: "1,200" in the last row is the number 1200 and "372.00" is 372, so they sum straight away. SKUs and the file names stay text. The headers of the second and third invoices were recognised and dropped; row 2, the first invoice's header repeated, is the one to delete.
Limits
- PDFs that are scanned images have no text to read; the page reports them. OCR is not available yet.
- A description that wraps onto a second line is joined back to its cell when the second line sits directly under the row and has nothing else on it, and "table rows only" is ticked. A wrapped line that shares its line with another wrapped cell, or sits further away, is not joined; check long descriptions against the PDF. A single line of text printed directly under the last row (a note such as "Prices include tax") is treated the same way and joined into that row's cell, so check the last row of each table.
- Columns are found from the layout of each file separately, so invoices with different layouts do not line up in one sheet. Convert those as separate sheets (leave "Combine" unticked).