使用 OpenTBS 生成 table - 每行在单独的单元格中
Generate table with OpenTBS - each row in separate cell
我尝试创建一个包含 table 的 ODT 文件(或 docx)。我阅读并搜索了所有 SO 和支持论坛,但不知道如何制作这样的东西:
cell1.val1 | cell2.val1 | cell3.val1
cell1.val2 | cell2.val2 | cell3.val2
cell1.val3 | cell2.val3 | cell3.val3
------------|--------------|------------
cell4.val1 | cell5.val1 | cell6.val1
cell4.val2 | cell5.val2 | cell6.val2
cell4.val3 | cell5.val3 | cell6.val3
----------------------------------------`
等等,等等……
我不知道如何构建数组以及如何为其创建模板。如果有人有类似的解决方案并且可以提供帮助,我将不胜感激。
您的 table 中有两个合并:合并 table 中的不同单元格和合并单元格中的项目。
要合并 table 中的不同单元格,您可以使用选项 serial
合并块。
参见 example and doc。
要合并单元格中的项目,您可以使用子块。最简单的是«自动子块»。
参见 example and doc。
因此,如果您的数据结构如下:
$data = array(
array(
'cell_id' => 1,
'items' => array(
array('value' => 1),
array('value' => 2),
array('value' => 3),
// ...
),
),
array(
'cell_id' => 2,
'items' => array(
array('value' => 1),
// ...
),
),
...
);
那么你的模板可以是这样的:
-------------------------------------------------------------------------------------------------------------------------------
| Column 1 | Column 2 | Column 3 |
-------------------------------------------------------------------------------------------------------------------------------
| [b;block=tbs:row;serial] | | |
| [b_1.cell_id;block=tbs:cell;sub1=items] | [b_2.cell_id;block=tbs:cell;sub1=items] | [b_3.cell_id;block=tbs:cell;sub1=items] |
| [b_1_sub1.value;block=tbs:p] | [b_2_sub1.value;block=tbs:p] | [b_3_sub1.value;block=tbs:p] |
-------------------------------------------------------------------------------------------------------------------------------
在此示例中,单元格中的项目合并到段落 (block=tbs:p
) 中,假设 TBS 字段放置在其自己的段落中。你也可以使用嵌套的table,那么你必须指定block=tbs:row
.
我尝试创建一个包含 table 的 ODT 文件(或 docx)。我阅读并搜索了所有 SO 和支持论坛,但不知道如何制作这样的东西:
cell1.val1 | cell2.val1 | cell3.val1
cell1.val2 | cell2.val2 | cell3.val2
cell1.val3 | cell2.val3 | cell3.val3
------------|--------------|------------
cell4.val1 | cell5.val1 | cell6.val1
cell4.val2 | cell5.val2 | cell6.val2
cell4.val3 | cell5.val3 | cell6.val3
----------------------------------------`
等等,等等…… 我不知道如何构建数组以及如何为其创建模板。如果有人有类似的解决方案并且可以提供帮助,我将不胜感激。
您的 table 中有两个合并:合并 table 中的不同单元格和合并单元格中的项目。
要合并 table 中的不同单元格,您可以使用选项 serial
合并块。
参见 example and doc。
要合并单元格中的项目,您可以使用子块。最简单的是«自动子块»。 参见 example and doc。
因此,如果您的数据结构如下:
$data = array(
array(
'cell_id' => 1,
'items' => array(
array('value' => 1),
array('value' => 2),
array('value' => 3),
// ...
),
),
array(
'cell_id' => 2,
'items' => array(
array('value' => 1),
// ...
),
),
...
);
那么你的模板可以是这样的:
-------------------------------------------------------------------------------------------------------------------------------
| Column 1 | Column 2 | Column 3 |
-------------------------------------------------------------------------------------------------------------------------------
| [b;block=tbs:row;serial] | | |
| [b_1.cell_id;block=tbs:cell;sub1=items] | [b_2.cell_id;block=tbs:cell;sub1=items] | [b_3.cell_id;block=tbs:cell;sub1=items] |
| [b_1_sub1.value;block=tbs:p] | [b_2_sub1.value;block=tbs:p] | [b_3_sub1.value;block=tbs:p] |
-------------------------------------------------------------------------------------------------------------------------------
在此示例中,单元格中的项目合并到段落 (block=tbs:p
) 中,假设 TBS 字段放置在其自己的段落中。你也可以使用嵌套的table,那么你必须指定block=tbs:row
.