0

我尝试在里面创建一个带有表格的 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
----------------------------------------`

等等,等等……我不知道如何构建数组以及如何为其创建模板。如果有人有类似的解决方案并且可以提供帮助,我将不胜感激。

4

1 回答 1

2

表格中有两个合并:合并表格中的不同单元格和合并单元格中的项目。

要合并表格中的不同单元格,您可以使用 option 合并块serial。请参阅示例文档

要合并单元格中的项目,您可以使用子块。最简单的是«自动子块»。请参阅示例文档

因此,如果您的数据结构如下:

$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.

于 2017-10-30T10:30:57.947 回答