我尝试用里面的表创建一个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
----------------------------------------`
依此类推...... 我不知道如何构建数组以及如何为它创建模板。如果有人有类似的解决方案并且可以提供帮助,我将非常感激。
答案 0 :(得分:1)
您的表中有两个合并:合并表中的不同单元格并合并单元格中的项目。
要合并表格中的不同单元格,您可以合并带有选项serial
的块。
请参阅example和doc。
要合并单元格中的项目,可以使用子块。最简单的是“自动子块”。 请参阅example和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字段位于其自己的段落中。您也可以使用嵌套表,然后必须指定block=tbs:row
。