跳到正文

指南

Excel 与 Google Sheets 发票模板

电子表格是制作发票的诱人选择:它替你算账,而且你早就拥有它。本指南将展示在 Excel 或 Google Sheets 中搭建一张可用发票的精确公式——行小计、小计、增值税行和总计——然后坦诚说明电子表格在哪里有帮助、在哪里会悄悄损害你的开票,以及何时免费生成器是更安全的选择。

1 min read · 2026年6月17日

为什么人们用 Excel 或 Sheets 开票

Excel 和 Google Sheets 无处不在,不需要额外花钱,而且无需你动用计算器就能处理算术。对于偶尔开张账单的自由职业者来说,电子表格感觉像是阻力最小的路径:打开一张网格,输入工作内容,让单元格把它加起来,再打印成 PDF。这种直觉是合理的——计算正是电子表格擅长的事

问题在于发票不只是一个求和。它是一份按顺序编号的法律记录,必须在数十甚至数百份文档之间保持一致、经得起审计,并且发出之后不会悄悄变动。电子表格的算术做得出色,而记录保存这部分做得很差。本指南的其余部分认真对待这两半:先讲让电子表格发票生效的公式,再讲在依赖它之前你应该了解的缺口。

搭建发票网格

从一个整洁的版式开始。把你的企业名称、地址和联系方式放在顶部几行,客户区块紧接其下,发票编号和日期放在右侧。为明细表格留出几行,然后在右下角留一小块放小计、税额和总计。Excel 和 Google Sheets 在这里的用法完全相同——接下来几节中的公式在两者中是一样的,只有一两个函数名需要注意。

抬头区块
你的姓名/公司、地址、增值税号或税号、电子邮箱,以及如果你想要品牌标识的话一个徽标单元格。
收款方区块
客户名称、地址,以及交易需要时填写其增值税号。
发票元信息
发票编号、开具日期和到期日——通常放在 F4、F5、F6 这样的单元格里。
明细表格
描述、数量、单价和行小计列(例如 A10 到 D25)。
合计区块
小计、增值税/税额和总计堆叠在右下角,每一项都由一个公式驱动。

公式 1:行小计(数量 × 单价)

明细表格中的每一行都将数量乘以单价。如果数量在 B 列、单价在 C 列,那么 D10 中的行小计就是 =B10*C10。把这个公式向下复制到表格的每一行。

为防止空行显示出多余的 0 或错误,把它包起来让空行保持空白:=IF(B10="","",B10*C10)。这样当你只填了十行中的三行时发票依然整洁。把 D 列设为货币格式(格式 → 数字 → 货币),让它显示带货币符号和两位小数,而不是原始数字。

公式 2-4:小计、增值税行和总计

行小计就位后,底部区块就是三个简短的公式。小计把每一行的行小计加起来:=SUM(D10:D25)增值税/税额行把这个小计乘以你的税率——如果小计在 D27,而你收取 21% 的增值税,那么税额单元格就是 =D27*0.21,更好的写法是 =ROUND(D27*0.21,2),这样它会像打印出的数字那样四舍五入到两位小数。总计则把两者相加:=D27+D28

小计
<code>=SUM(D10:D25)</code> ——把明细表格中的每一行加总。在 Excel 和 Sheets 中相同。
增值税 / 税额
<code>=ROUND(D27*0.21,2)</code> ——小计乘以你的税率,四舍五入到 2 位小数。把 0.21 换成你的税率。
多个税率
如果各行适用不同税率,添加一个税率列,使用 <code>=ROUND(SUMPRODUCT(D10:D25,E10:E25),2)</code>。
总计
<code>=D27+D28</code> ——小计加税额。这是你用大字号写出的应付金额。
金额大写(可选)
Excel 没有内置函数;有些模板使用冗长的嵌套公式或一个小宏。Sheets 则需要一段脚本。

电子表格真正有帮助的地方

公平地评价这个工具:在算术上,电子表格非常出色,值得使用。改动一个数量,每个相关单元格都会立即重新计算。你可以建模折扣(=D27*0.9 表示打九折)、运费行、部分定金和取整规则,而不会有错误悄悄潜入。对于一次性的内部估算、算出该收多少钱,或在开具正式文档之前核对一张复杂的多税率账单,一张快速的表格是一个完全够用的计算器。

「有帮助的计算器」与「有风险的记录系统」之间的界线,就在你开始把那些表格当作真正的发票发给客户、并依赖它们报税的那一刻。这正是下一节所要讲的。

电子表格在开票上失灵的地方

让电子表格成为出色计算器的那种灵活性,恰恰使它成为糟糕的开票系统。每个单元格都可编辑,没有任何东西被锁定,也没有强制的结构——这对草稿本来说没问题,对法律性的开票记录来说却很危险。

没有连续编号
大多数司法辖区要求发票编号无缺口、连续。电子表格不会替你分配一个——你手动输入,于是把 INV-014 重复了,或跳过了 INV-015,到报税时才发现。
版本混乱
invoice_final.xlsx、invoice_final_v2.xlsx、invoice_FINAL_real.xlsx。没有集中记录,你就搞不清究竟发出了哪个版本、收了什么款。
没有真正的品牌标识或干净 PDF
打印成 PDF 会截断各列、把表格跨页拆开、让合计区块错位。徽标会乱飘。每次都得到一份干净、带品牌的 PDF 是件麻烦事。
没有审计轨迹
已发出的发票应当是不可更改的。电子表格事后可以被编辑而不留任何历史,所以金额可以悄悄改变——这正是审计员和客户所不信任的。
税额取整的陷阱
单元格存储完整精度却只显示两位小数,所以一列看起来已取整的数字加起来可能与总额相差一分钱。如果不在每一行税额上都用 <code>ROUND()</code>,你的增值税就对不平。
公式被破坏
在表格内部插入一行,你的 <code>=SUM(D10:D25)</code> 范围可能不会延伸到它,于是新的一行被悄悄漏出总额之外。
没有客户清单或状态
电子表格不会跟踪谁已付款、什么逾期了,也不会存储可复用的客户信息——你每次都得重新输入一切。

免费生成器这一替代方案

如果你既想要算术想要记录保存,一款专用发票生成器能让你两者兼得,且没有电子表格的弊端。它会自动算出行小计、小计、增值税和总计——同样的算术,但 ROUND() 处理得当,所以你的税额始终对得平——并且它还加上了电子表格做不到的东西:自动连续编号、每次都干净的品牌 PDF,以及可复用的客户信息。

FreeBillGen 免费、无需账户,在你的浏览器中运行。你填入各行,它计算合计和税额,分配下一个编号,并用 80 种语言生成一份整洁的 PDF。如果你愿意,可以保留电子表格用于快速的内部计算,但要从一款生来就是开票记录的工具中开具真正的发票——而不是一张谁都能悄悄覆盖的网格。

Excel 发票模板常见问题

Excel 中发票行小计的公式是什么?

把数量乘以单价。如果数量在 B10、单价在 C10,行小计就是 =B10*C10。要让空行保持空白,用 =IF(B10="","",B10*C10)。然后用 =SUM(D10:D25) 把所有行加总得到小计。

如何在电子表格发票中添加增值税或销售税?

把小计乘以你的税率并四舍五入到两位小数。如果小计在 D27,税率是 21%,税额单元格就是 =ROUND(D27*0.21,2)。总计则是 =D27+D28。务必使用 ROUND(),让显示出的数字与总额对到分。

Excel 和 Google Sheets 之间公式有区别吗?

就开票而言,没有。SUM、IF、ROUND 和 SUMPRODUCT 在两者中用法相同。差异出现在高级附加功能上——比如把金额转为大写时,宏(Excel VBA)与 Apps Script(Sheets)的不同——但核心的发票公式是一样的。

为什么我电子表格里的增值税总额会差一分钱?

单元格存储完整精度却只显示两位小数,所以看起来已取整的数字加起来可能得出略有不同的总额。把每一处税额计算都用 ROUND(...,2) 包起来,让每个数字都按你实际显示的精度存储。这是最常见的电子表格开票错误。

电子表格能处理连续发票编号吗?

不可靠。它没有内置机制跨文件分配下一个无缺口编号,所以你手动输入,并冒着重复或缺口的风险——而许多税务机关不允许这样。专用生成器会自动替你分配连续编号。

电子表格发票具有法律效力吗?

可以有,前提是它包含每个必需字段和一个正确的连续编号,但电子表格让合规更难:它们没有审计轨迹、发送后可被编辑,而且依赖你手动编号。为了得到可靠、不可更改的记录,大多数企业改用专用发票工具。

跳过电子表格——免费创建发票

FreeBillGen 替你算出行小计、小计、增值税和总计,正确地对税额取整,分配下一个连续编号,并用 80 种语言生成一份干净的品牌 PDF——免费、在你的浏览器中、无需账户。

创建发票

本指南为一般性信息,不构成税务或法律意见。开票与增值税规则因国家而异并会随时间变化;请就你所在司法辖区核实具体细节。