如何用 CSV 批量生成数据驱动图形
简要回答
在 Lil Cactus 中打开分层设计,选择。在数据组中导入 CSV 或 TSV;在变量中选择一个文字图层,启用文本内容,并在文本内容列中把 filename 替换为 title。在数据组中预览各行,然后切换到导出为,单击导出所有设计...。每一行数据都会成为 ZIP 中的一个单独文件。

- 用时
- 7 分钟
- 难度
- 中级
- 准备工作
- 一个带有可编辑文字的分层设计,以及一张 CSV 或 TSV 表格
- 适用格式
- Lil Cactus 项目模板、CSV 或 TSV 表格;本教程导出 PNG 文件
变量把图层的某个属性与表格中的一列关联起来。数据组是一行数据,即设计的某一个版本所用的值。如果要制作一系列版式不变、内容不同的海报、产品卡片或姓名胸牌,这个功能就很有用。
先把需要变化的部分放在单独的图层上。文字必须仍是可编辑的文字,而不是已合并到照片中的字样。本例用三行数据替换咖啡海报上的标题。
六步生成三个设计
打开模板并下载表格
打开本页的示例模板,或选择打开你自己的分层文件。在示例的图层面板中,Text图层存放标题,位于Background照片上方。
下载示例 CSV。它的第一行是列标题,之后每一行提供一个输出文件名和一个标题:
filename title morning MORNING BLEND house HOUSE BLEND dark DARK ROAST 
绑定 Text 图层,背景照片保持不变。 在“数据组”中导入 CSV
选择。单击数据组选项卡,再单击导入 CSV / TSV...,选择 poster-variants.csv。对话框会显示共有三行、两列,并在表格中列出它们的值。

“导入 CSV / TSV...”位于“数据组”选项卡中。示例包含三个设计。 把 Text 图层关联到 title 列
切换到变量。将图层设为Text (文字),勾选文本内容,并在文本内容列中把 filename 替换为 title。列标题要与 CSV 中的写法完全一致。
控件下方的摘要显示 Text · 文本 → title。其他图层没有绑定,因此保持不变。

在“变量”中,“文本内容”把可编辑的标题图层链接到 CSV 的 title 列。 逐行预览
回到数据组,单击预览设计。第 1 行显示 MORNING BLEND。单击下一个,再次单击预览设计,显示 HOUSE BLEND;对 DARK ROAST 重复此操作。选择另一行会清除旧的预览,因此每次切换后都要重新生成预览。
检查每个标题是否都能放进杯子左侧的空白区域。预览会生成一个单独的副本,不会替换你打开的模板中的标题。

第 1 行预览为 MORNING BLEND。原始模板中仍是 COFFEE MENU。 选择文件名并导出所有设计
切换到导出为。将文件名来自设为 filename,格式保持为PNG。单击导出所有设计...。
解压下载的 ZIP,你会得到 morning.png、house.png 和 dark.png,每张都是 1536 × 1024 像素。打开这些文件,按原尺寸检查标题。导出后,“变量”对话框仍保持打开。

filename 列为文件命名,title 列提供显示的文字。 存储设置以便再次使用
单击存储设置,把绑定和导入的行保留在文档中并关闭“变量”。然后选择,把带有这些设置的分层模板存储下来。
重新打开项目后,会恢复这些设置。要使用新的值,就在数据组中导入修改后的表格,并保持原有的列标题,以便沿用现有的绑定。

“存储设置”会把表格和绑定保留在文档中。 
“Lil Cactus 项目...”会把分层文档及其设置存储到文件中。
更换图像或图层的可见性
同一个“变量”选项卡还提供另外两种属性:
| 属性 | 如何提供值 |
|---|---|
| 可见性 | 在某一列中使用 true/false、yes/no 或 1/0。把它绑定到任意图层或组,按行显示或隐藏这些内容。 |
| 图像内容 | 选择一个像素图层或智能对象。在该列中填写完整的文件名,包括扩展名。在“数据组”中单击“源图像...”选择这些文件。 |
对于图像绑定,图像置入提供适合内部,居中(保留整张图像)和填充并裁剪,居中(填满其区域)两种方式。重新打开模板后,需要再次选择源图像文件。
解决常见问题
表格中没有“title”列。
绑定的列名与列标题不一致。检查拼写和大小写,然后在“变量”中更正列字段,或在“数据组”中导入更正后的表格。
“文本内容”不可用
所选图层不是可编辑的文字。请选择 Text 图层,而不是它所在的组或已合并的图像。
标题放不下
替换的文字会采用该图层文字开头处的样式。请缩短该行的文字,或调整模板的文字版式,然后重新生成文件。
找不到源图像
在“数据组”中用源图像...选择它。单元格必须与所选文件的名称完全一致(包括大小写和扩展名),而不能是文件夹路径。
逗号把一个值拆成了两列
在 CSV 中,用双引号括起包含逗号的值。每一行的单元格数必须与标题行相同。TSV 则用制表符分隔单元格。
接下来做什么
数据驱动图形:常见问题
可以用 Excel 表格生成设计吗?
可以。先把表格另存为 CSV 或制表符分隔的文本。在 Lil Cactus 中,选择“图像 › 变量...”,单击“数据组”选项卡,再单击“导入 CSV / TSV...”;该对话框导入的是文本文件,而不是 Excel 工作簿。
数据驱动图形能替换合并后的 JPEG 中的文字吗?
不能。Lil Cactus 的“文本内容”需要一个可编辑的文字图层。在把它关联到某一列之前,先把字样制作成单独的文字图层。
预览数据组会更改我的模板吗?
不会。Lil Cactus 会从单独的副本生成预览和导出的设计。“存储设置”会保留表格和绑定,但不会把任何一行应用到原始图层上。
一个 CSV 列可以同时更改多个图层吗?
可以。在 Lil Cactus 的“变量”中,为每个图层的相应属性指定同一个列标题。这样,每个绑定的属性都会读取当前行中的该列。
数据驱动图形可以在每个设计中使用不同的图像吗?
可以。在 Lil Cactus 中,把像素图层或智能对象的“图像内容”绑定到一列完整的文件名,然后在“数据组”中通过“源图像...”选择这些文件。


