Guide

How to get invoice data into a spreadsheet without typing it

Sixty invoices, and for each one you open it, read three numbers, and type them into a sheet. Here is how to stop, and an honest note on when you should not bother.

Short answer

If you use Xero or QuickBooks, their built in capture already does this and it is free with your subscription. Use that. Everything below is for people whose job is not invoices, or whose documents never reach an accounting system.

Start here: your accounting software probably already does this

This is the most useful sentence on this page and most articles on this topic leave it out, because it costs them a sale.

Xero includes Hubdoc at no extra cost. QuickBooks has receipt capture. MYOB has In Tray. You forward an invoice to an email address, or drop it in, and the data comes out the other side and lands against a transaction.

If your problem is supplier invoices and you already pay for one of these, stop reading. Use the thing you are paying for. It is better than anything else here, because it does the last step too, which is posting the transaction rather than handing you a spreadsheet.

Everything below is for the case where that does not apply: documents that are not invoices, businesses without accounting software, or data that needs to land in a spreadsheet rather than a ledger.

Excel's built in PDF import, for tidy tables

Excel can pull a table out of a PDF directly. Data, then Get Data, then From File, then From PDF. It finds tables in the document and lets you pick one.

Genuinely useful and completely free if your PDF contains a real table. Useless for a typical invoice, where the values you want are scattered around a layout rather than sitting in a grid.

Tabula, free and open source

Tabula lets you draw a box around a region of a PDF and exports what is inside it as CSV. It is free, it runs on your own machine, and it is well made.

It is built for tables in reports and papers, and it works page by page with you pointing at things.

Excellent for a handful of documents. Painful for a hundred, because you are drawing a box on every one.

A script, if the documents are consistent

  1. 1pip install pymupdf, then open each PDF and pull its text.
  2. 2Find the values with regular expressions: an invoice number pattern, a date pattern, a currency pattern.
  3. 3Write the rows out with Python's built in csv module.

Free, fast, and completely under your control. It breaks the day a supplier changes their invoice template, and you will not notice until the numbers are already in your books.

Extraction services

Nanonets, Docparser, DocuClipper, Klippa and others will read documents and hand back structured data. Most are subscriptions in the tens of dollars a month and up, most are cloud based, and most are good at what they do.

The trade is that your documents are uploaded to somebody else's servers, and the pricing is usually per page, which adds up on volume.

The thing everyone gets wrong: what happens when it is unsure

Whichever method you choose, ask this question before you trust it: what does it do when it cannot find the total?

A blank cell you can see is an inconvenience. A confidently wrong number in your books is a problem you may not find for months, and you will not know to look for it.

Any tool worth using tells you which documents it could not read, and what was missing from each. If it never reports failures, that does not mean it never fails.

Common questions

Can Excel extract data from a PDF invoice?
It can import tables from a PDF using Get Data, From File, From PDF. That works when the document contains an actual table. It does not work well on a typical invoice, where the invoice number, date and total sit in different parts of a layout rather than in a grid.
Is there a free way to do this?
Yes, several. Excel's PDF import, Tabula, and a Python script with PyMuPDF are all free. If you already pay for Xero or QuickBooks, their built in capture is included and is better than any of them for supplier invoices.
Does any of this work on scanned invoices?
Only tools that can read an image. Scripts and Excel's import both read the text layer, which a scan does not have. You need OCR first, or a tool that reads the picture.

Related

Solven builds custom software and automation for Australian businesses. If you have a job like this that no tool quite fits, that is the work we do.

Get a free teardown