You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用OpenTBS插件创建重复格式块?TBS Word模板制作遇阻

用OpenTBS(TinyButStrong)实现Word文档分组重复行与格式块

一、按活动标题分组生成目标格式行

先把数据整理成嵌套或已排序的结构,以PHP数组为例:

// 方案1:嵌套分组结构(直观易维护)
$grouped_data = [
    [
        'title' => '活动A',
        'items' => [
            ['name' => '项目1', 'val' => 'XXX'],
            ['name' => '项目2', 'val' => 'YYY']
        ]
    ],
    [
        'title' => '活动B',
        'items' => [['name' => '项目1', 'val' => 'ZZZ']]
    ]
];

// 方案2:已按活动标题排序的扁平化数据
$flat_data = [
    ['act_title' => '活动A', 'item_name' => '项目1', 'item_val' => 'XXX'],
    ['act_title' => '活动A', 'item_name' => '项目2', 'item_val' => 'YYY'],
    ['act_title' => '活动B', 'item_name' => '项目1', 'item_val' => 'ZZZ'],
];

Word模板设置

针对嵌套分组结构:

  1. 活动标题段落:输入**[activities.title]**,并在段落开头添加块标签[activities;block=p](表示每个活动作为独立段落块重复)
  2. 活动下的项目段落:每个项目行写- [activities.items.name]:[activities.items.val],段落开头添加嵌套块标签[activities.items;block=p]

针对扁平化数据:

  1. 活动标题部分:用when属性跳过重复标题,模板代码为:
    [flat_data;block=begin;when [act_title] != [act_title_prev]]**[act_title]**[flat_data;block=end]
  2. 项目行:写[flat_data;block=p]- [item_name]:[item_val](必须确保数据已按活动标题排序)

代码处理示例

require_once('tbs_class.php');
require_once('opentbs.php');

$TBS = new clsTinyButStrong;
$TBS->Plugin(TBS_INSTALL, OPENTBS_PLUGIN);
$TBS->LoadTemplate('你的模板文件.docx');

// 嵌套结构用这个
$TBS->MergeBlock('activities', $grouped_data);
// 扁平化结构用这个
// $TBS->MergeBlock('flat_data', $flat_data);

// 导出下载文件
$TBS->Show(OPENTBS_DOWNLOAD, '最终文档.docx');

二、OpenTBS创建重复格式块的通用方法

重复块可用于表格行、段落、图片、文本框等几乎所有Word元素,核心是给目标元素添加block标签:

1. 表格行重复

在需要重复的表格行的任意单元格内添加[table_data;block=tr],行内字段用[table_data.field],模板示例:

项目名称数值
[table_data.name][table_data.val]

对应代码:

$table_data = [['name'=>'项目1','val'=>'XXX'], ['name'=>'项目2','val'=>'YYY']];
$TBS->MergeBlock('table_data', $table_data);

2. 文本段落/列表重复

给每个要重复的段落开头添加[list_data;block=p],段落内容按需求写格式,比如:
[list_data;block=p]- 项目:[list_data.name],数值:[list_data.val]

3. 嵌套重复块

就是分组场景的用法,父块包含子块,数据用嵌套数组,模板中子块标签要继承父块名称(比如[activities.items;block=p])

关键注意事项

  • 开启Word的「显示/隐藏编辑标记」(快捷键Ctrl+*),确保TBS标签没有被Word的格式代码拆分
  • 编辑.docx模板必须用Word,不要用文本编辑器,避免破坏格式结构
  • 重复块的block参数要对应元素类型:表格行用tr,段落用p,文本框用txbx,图片用pic

内容的提问来源于stack exchange,提问作者ura remon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 16:45:20