The reason to invoice from a spreadsheet is the math. Type a quantity and a rate and the amount appears; add a line and the subtotal moves; change the tax rate once and every invoice after it is right. The reason most spreadsheet invoice templates disappoint is that they look like spreadsheets: gridlines, a logo pasted over the cells, and a layout that prints onto two and a half pages.
The file this page builds is the invoice from our invoice template page laid out as a sheet: the header with your business and logo, the fields, the work and parts tables, and the totals, with gridlines off, the columns sized to print on one portrait page, and formulas in every cell that should compute. This page is about using it.
What the formulas do
Download it and click into the totals to see them. Each line in the work and parts tables has an amount formula that multiplies the quantity by the rate when both are numbers and stays blank when they're not, so an empty row doesn't show a zero. The subtotal is a SUM over the amount column of both tables. The tax is the subtotal times a rate cell, which you set once (8.25% is typed as 8.25% and stored as a number). The total is the subtotal plus tax, and the balance due is the total minus the deposit cell.
If you filled the sheet in on this page before downloading, the quantities, rates and the tax rate come across as numbers and the formulas pick them up on open. An amount you typed by hand that isn't quantity times rate is kept as the number you typed, because it was an override.
Microsoft's overview of formulas in Excel covers the rest if you want to change them: adding a discount line, a second tax, or a per-line markup column that's hidden when you print.
Fill it in here first
The parts of the invoice that never change (your name, address, phone, email, license number, your payment terms, your warranty line, your logo and your accent color) are faster to set on this page than in a spreadsheet, and they come through in the download. Set them once, download, and that file is your master. Nothing you type here leaves your browser; the file is built on your machine.
Per-job routine in Excel
Keep the master untouched. For each job, open it, immediately Save As with the invoice number and the customer in the filename (2026-0117 Garcia water heater.xlsx), then fill in the number, the date, the customer, the service address and the lines. Watch the balance due compute. Then File, Export or Save As PDF to send; never send the spreadsheet, which the customer can edit and which shows your formulas.
Adding lines: insert a row inside the table, above the labor line, and copy the amount formula down from the row above (select the amount cell above, copy, paste into the new row). The SUM range covers the whole block, so a row inserted inside it is included automatically. A row added below the last line is not, which is the one way to get a wrong subtotal; keep the labor line last and insert above it.
In Google Sheets
Google Sheets opens the .xlsx with the formulas intact. In Sheets, File, Import, Upload, and choose the file; or drop it into Drive and open it, which converts it to a Sheet. Once it's a Sheet, File, Make a copy is your per-job routine, and File, Download, PDF is how you send it. Everything about the formulas is the same.
If you share a Sheet with a customer, share the PDF instead. A Sheet shared as view-only still exposes your formulas and your rate column.
Printing it on one page
The download already has gridlines off, the description column wide and the four number columns narrow, and the page set to fit one page across. Two things still go wrong. If you add a lot of lines the sheet runs onto a second page, which is fine as long as the totals aren't orphaned at the top of it; insert a page break above the Work performed heading if they are. And if you widen a column, check Page Layout, Fit to one page wide before you export, or the amount column drops onto its own sheet.
Set the print area once on your master so it never includes the empty columns to the right, and the PDF will look like an invoice every time rather than a spreadsheet that happens to have an invoice in it.
An invoice log on a second tab
The thing a spreadsheet can do that a Word file can't is keep the list. Add a second tab called Log with one row per invoice: number, date, customer, amount, due date, paid date. Fill it in when you send each invoice. A filter on the paid-date column shows what's open, and a SUM on the amount column minus the paid ones is your receivables, which is a number worth knowing on a Friday afternoon.
The log is also where the next invoice number comes from. Look at the last row, add one. It's the simplest system that works, and it works until the day you forget to fill it in.
Where the spreadsheet stops
That day is when the live version earns its keep. In General Dispatch the invoice is created from the job with the next number assigned, the math done, sent as a link by text or email, paid by card on the page into your own Stripe account, and marked paid the moment the card clears; the open ones get a polite reminder on the schedule you set, and the list of what's owed is one screen, not a tab you have to remember. Part of the $97 a month business plan. The spreadsheet is the right tool for a shop that sends a few invoices a month and wants the math done; the live one is for a shop that wants the chasing done too.