直接从 Google Sheets 自动打印标签
你已经有了数据。它就在电子表格里——SKU、产品名称、条形码、价格、批号——而且它是团队所有人实际编辑的唯一真实来源。
然后,必须有人把这些行导出为 CSV,打开标签设计器,重新导入数据,重新对齐每个字段,然后打印这批标签。一次又一次。每次价格变动或有新 SKU 进来时,都要重复一遍。
如果你想从 Google Sheets 自动打印标签,目标很简单:电子表格留在原地,标签从另一端出来。没有导出步骤,没有重新导入,没有字段对齐的往返。本文介绍一次性设置、流水线,以及让这一切可靠运行所需的故障处理。
为什么从 Google Sheets 手动打印标签浪费时间
这个重复性任务总是同样的形态:
- 将相关行导出为 CSV。
- 打开标签设计器,将文件作为数据源加载。
- 重新映射列到字段,因为导出顺序又变了。
- 手动逐批打印,一次一个文件。
隐藏的成本不是每批十分钟。而是任何数据变更——产品更新、价格变动、新 SKU——都会迫使你进行一次完整的手动往返,才能产出一张标签。你的电子表格是实时的;你的标签不是。
有两类人感受最深:
- 构建内部工具的开发者,被要求“把打印接上就行”,最终却要维护一个脆弱的导出脚本。
- 最终用户,在库存、发货和零售领域,他们只关心一件事:货架或纸箱上的标签与他们刚输入的数据一致。
自动化应该是什么样子:你编辑一行,你打印。电子表格是前端,标签系统是渲染器。
这正是 Next Generation Label Printing System(LPSNG)的用武之地——一个将 Google Sheets 变成标签打印前端的托管插件。
一次性设置:将 Google Sheets 连接到你的标签系统
设置只做一次。之后,打印就是点一下按钮。
1. 安装插件。 从 LPSNG 集成页面获取 Google Sheets 插件,并针对你的 LPSNG 账户进行授权。该插件列在平台的集成中——与 Excel 接口、可复用侧边栏和字段脚本 API 并列。
2. 了解 OAuth2 注册。 LPSNG 使用简化的 OAuth2 注册协议来连接外部系统:一个 URL 即可将插件连接到你的 LPSNG 实例。无论你运行的是托管云版本还是自己硬件上的打印站,该 URL 都相同。你注册一次;插件会获取令牌并为你刷新。你永远不需要把令牌粘贴到单元格里。
3. 准备表格。 每行一个标签。列标题要能清晰地映射到标签字段:
| 表格列 | 标签字段 |
|---|---|
product_name |
产品名称(文本块) |
barcode |
条形码符号(1D/2D) |
price |
价格文本 |
batch_no |
批次 / 批号 |
保持标题行稳定。之后把 barcode 改名为 bar_code 是破坏已工作设置的最常见方式。
4. 创建布局。 在 LPSNG 标签工作室中构建或导入标签布局,然后将表格列绑定到布局字段,使每一行恰好渲染为一个标签。条形码原生处理——LPSNG 支持多种 1D 和 2D 条形码格式,因此 barcode 列无需任何额外工具即可渲染为可扫描的符号。
5. 一次性选择输出目标。 PDF 下载、直接打印到已配置的打印机,或用于预览的 PNG。你可以将一批预览为 PDF,然后将同一布局发送到热敏打印机。
如果你还在选择平台,系统集成商标签设计软件采购指南更深入地介绍了评估标准。
自动化流水线:从表格编辑到打印标签
一旦映射存在,有两种方式触发输出。
按需。 打开插件侧边栏,选择你关心的行或范围,然后打印。这是单次重印或修正价格的日常路径。
带筛选的批量。 对匹配筛选条件的所有行运行——例如,辅助列中所有标记为 status = pending 的行。插件将选择提交给 LPSNG Web 服务,后者使用你保存的布局渲染每一行并将任务排队。
打印前的字段级逻辑
真实的表格很乱。日期以时间戳形式出现,校验位缺失,一半的产品名称需要尺寸后缀。与其在表格中清理所有内容,不如将 Python 脚本块附加到标签字段本身。字段脚本在打印前运行,可以读取和修改传入的值:
# 附加到 "price" 标签字段的示例字段脚本。
# 每个字段的形式相同:接收传入值,
# 返回最终应出现在标签上的字符串。
def prepare(value):
amount = float(value)
return f"{amount:,.2f} EUR"
同样的机制可处理日期格式化、将两列拼接为一个地址块,或从原始商品编号计算校验位。注意这是字段逻辑——它改变打印的内容,绝不改变表格中存储的内容。
作为背景的硬核方式
你可以跳过插件。Web 服务 API 接受带 OAuth2 令牌和原始 JSON 负载的任务——这与插件发起的调用相同。但那样你就得自己负责令牌刷新、重试逻辑、列映射,以及自己脚本的每一次破坏性变更。如果你特别想要那种控制级别,Web 服务演练介绍了请求/响应模型。
托管方式更短:编辑表格,点击打印,收集标签。插件为你执行 Web 服务调用。
监控任务和处理故障
打印是 I/O,而 I/O 会失败。重要的是你能看到哪些行失败了,并只重新运行那些行。
- 使用任务队列。 提交的打印任务会出现在 LPSNG 任务队列中并带有状态,因此你可以将任务追溯到产生它的表格行。
- 了解常见原因。 大多数失败是以下三种之一:某行必填字段为空、目标打印机离线,或布局字段不再映射到表格列(通常发生在列重命名之后)。
设计表格使重试成本低廉。添加状态列,或用公式推导:
=IF(OR(B2="",C2=""),"BLOCKED","READY")
现在部分失败只是一个筛选条件,而不是重印整批:修复该行,将其设回 READY,然后只打印 READY 行。
对于更高量或无人值守的运行,LPSNG Player——独立的命令行打印引擎——接收一个包加一个数据文件,并输出 PDF、PNG、JSON 或直接打印任务。每次调用的形式都相同:指向一个包,指向数据,告诉它输出什么。
# 包输入,数据输入,文件输出。请查看 Player 文档
# 以了解你所用版本的确切标志名称。
lpsng-player \
--package ./labels/retail-shelf.lpsng \
--data ./exports/price-update.csv \
--out ./out/labels.pdf
关注发布说明和 LPSNG 博客,了解影响任务提交行为的插件和 Web 服务变更——关于行为变更的问题首先在那里得到解答。
可靠的表格驱动标签打印最佳实践
- 把表格当作数据库。 稳定的标题、每行一条记录、数据范围内没有合并单元格。合并单元格是“为什么第 47 行打印了错误内容”的头号原因。
- 打印前验证。 用表格公式或 Python 字段脚本捕获空条形码或格式错误的值,而不是在物理标签上才发现。
- 对布局进行版本管理。 设计变更不应悄悄破坏现有的表格映射。保持绑定显式,并用实时行的样本测试布局。
- 分离测试与生产。 第二个表格或筛选列可以让实验远离打印机。
- 在多用户团队中使用角色。 LPSNG 的企业功能——多用户、多区域、多设备——让你控制谁编辑布局、谁只能打印,从而完全消除意外编辑类故障。
常见问题
从 Google Sheets 自动打印标签需要写代码吗?
不需要。Next Generation Label Printing System 的 Google Sheets 插件为你处理连接和任务提交。你安装插件,通过 OAuth2 注册流程授权一次,将表格列映射到标签字段,然后打印。针对 Web 服务 API 编写自己的集成是可能的,但不是必需的。
我可以打印到热敏打印机,还是只能打印为 PDF?
LPSNG 可以将标签渲染为 PDF 或 PNG,也可以将任务发送到已配置的打印机进行直接打印。插件让你选择输出目标,因此你可以预览为 PDF,然后从同一布局打印到热敏打印机。
如果我的表格有数百行会怎样?
插件将批次提交给 LPSNG Web 服务,后者将每一行渲染为一个标签并将任务排队。你可以在任务队列中监控进度。对于无人值守或非常大量的运行,LPSNG Player 命令行引擎专为处理包加数据的输入并输出 PDF、PNG、JSON 或直接打印而设计。
这能在 Raspberry Pi 上的嵌入式版本上运行吗?
可以。嵌入式版本在 Raspberry Pi 等单板计算机上运行完整的 LPSNG,并且使用相同的 OAuth2 注册和 Web 服务接口来连接 Google Sheets 插件。这对于需要独立于云版本运行的打印站很有用。
结论
电子表格已经是你的产品数据库、价格表和发货清单。把它变成标签打印机是一次性连接:安装插件,授权一次,将列映射到字段,选择输出目标。之后,从 Google Sheets 自动打印标签只需点击一下——而不是导出、导入和重新对齐。
下一步: 从集成页面安装 Google Sheets 插件,在标签工作室中构建一个布局,然后从一个五行测试表格打印你的第一批表格驱动标签。
