我一直在为自己的学术项目学习PHPWord,并且还拥有最新的PHPWord库,该库支持rowpan的“vMerge”和colspan的“gridSpan”。
我一直难以创建一种特殊类型的表结构,如下图所示。
问题是,如何使'1','2'和'6'具有相同的行跨度,在这种情况下,它等于2。
任何帮助将不胜感激。
edit-1 我已经成功完成了基本的rowpan和colspan,但是我发现使用此复杂表存在困难。
最佳答案
示例中有一个示例与您正在执行的操作非常接近: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的两个相邻单元格的连续定义,并且未按预期显示它们,但是word确实按预期显示了它们)