如何使用包含多个 rowspan 和 colspan 的 PHPWord 在 word 中制作 table?

How to make the table in word using PHPWord which includes multiple rowspan and colspan?

我一直在为我的学术项目学习 PHPWord,我还有最新的 PHPWord 库,它支持 rowspan 的“vMerge”和 colspan 的“gridSpan”。

我发现创建一种特定类型的 table 结构很困难,如下图所示。

问题是如何使 '1'、'2' 和 '6' 具有相同的行跨度,在本例中它等于 2。

如有任何帮助,我们将不胜感激。

edit-1 我已经成功地使用了基本的 rowspan 和 colspan,但是我发现这个复杂的问题 table.

示例中有一个示例与您正在做的非常接近:https://github.com/PHPOffice/PHPWord/blob/develop/samples/Sample_09_Tables.php

并稍微修改一下以实现您的示例:

$cellRowSpan = array('vMerge' => 'restart');
$cellRowContinue = array('vMerge' => 'continue');
$cellColSpan = array('gridSpan' => 2);

$table->addRow();
$table->addCell(2000, $cellRowSpan)->addText("1");
$table->addCell(2000, $cellRowSpan)->addText("2");
$table->addCell(4000, $cellColSpan)->addText("3");
$table->addCell(2000, $cellRowSpan)->addText("6");

$table->addRow();
$table->addCell(null, $cellRowContinue);
$table->addCell(null, $cellRowContinue);
$table->addCell(2000)->addText("4");
$table->addCell(2000)->addText("5");
$table->addCell(null, $cellRowContinue);

$table->addRow();
$table->addCell(2000);
$table->addCell(2000);
$table->addCell(2000);
$table->addCell(2000);
$table->addCell(2000);

已使用 0.13.0 版本进行测试(出于某种原因,libreoffice 不喜欢带有 vMerge continue 定义的两个相邻单元格,并且没有按预期显示它们,但 word 确实按预期很好地显示了它们)