已编辑:
为清晰度添加代码。我实际上将opentbs公共演示样本用于XLSX,因为我想知道该问题是否可以重现,并且是。
都可以在此处找到所有演示材料,只需选择XLSX模板,您就可以下载模板和PHP代码:
基本上只是一个常规的合并行情况,这是我们一行编写占位符的地方,希望它会被我们的数据阵列填充。这是模板
当您在图片中注意到,我添加了一个位于单元格22D中的合并列,在我们的数据占位符下方仅两个行。 然后,然后运行PHP代码合并我的数据,XSLX
的OPENTBS演示是相同的
// A recordset for merging tables
$data = array();
$data[] = array('rank' => 'A', 'firstname' => 'Sandra', 'name' => 'Hill', 'number' => '1523d', 'score' => 200,
'visits' => 15, 'email_1' => '
[email protected]', 'email_2' => '[email protected]', 'email_3' => '[email protected]');
$data[] = array('rank' => 'A', 'firstname' => 'Roger', 'name' => 'Smith', 'number' => '1234f', 'score' => 800,
'visits' => 33, 'email_1' => '[email protected]', 'email_2' => '[email protected]', 'email_3' => '[email protected]');
$data[] = array('rank' => 'B', 'firstname' => 'William', 'name' => 'Mac Dowell', 'number' => '5491y', 'score' => 130,
'visits' => 16, 'email_1' => '[email protected]', 'email_2' => '[email protected]', 'email_3' => '[email protected]');
// Merge data in the first sheet
$TBS->MergeBlock('a,b', $data);
this
在这里,除了合并格式之外,我们可以看到以前位于占位符下方的所有细胞内容和格式。由于我们的数据包含3个条目,因此填充了第20至22行,并将合并的单元格内容从第22行向下推到24。此外,我们的“这是合并的列”内容并不是真正位于合并的列中。这是预期的结果:
在正确的方案中,数据按原样显示,并且合并的单元格内容和格式也不变,仅从第22行到24行。希望这有助于
不幸的是,OPENTB现在无法移动合并的单元格(OpentBS版本1.12.1)。 这是因为在XLSX纸中,合并的单元格被注册为单元的属性,而是在纸数据末端作为固定的单元格列表。 因此,Opentbs遵循移动的单元格变得困难(但并非不可能)。
为此功能的等待,您可以使用此技巧手动移动合并的单元格: