PHPWord将HTML读入表格单元格
问题描述:
似乎PHPWord需要一个元素来插入\PhpOffice\PhpWord\Shared\Html::addHtml
的输出。我想输出HTML字符串的内容制作成表格单元格,下面的例子:PHPWord将HTML读入表格单元格
//Example HTML
$html = '<h1>Adding element via HTML</h1>';
$html .= '<p>Some well formed HTML snippet needs to be used</p>';
$html .= '<p>With for example <strong>some<sup>1</sup> <em>inline</em> formatting</strong><sub>1</sub></p>';
$html .= '<p>Unordered (bulleted) list:</p>';
$html .= '<ul><li>Item 1</li><li>Item 2</li><ul><li>Item 2.1</li><li>Item 2.1</li></ul></ul>';
$html .= '<p>Ordered (numbered) list:</p>';
$html .= '<ol><li>Item 1</li><li>Item 2</li></ol>';
$table = $section->addTable();
$target = $table->addRow()->addCell(10000)->addText();
\PhpOffice\PhpWord\Shared\Html::addHtml($target, $html);
的靶细胞仍然是空的,但我可以生成没有错误一个Word2007文档。我试过没有addText()
调用,但生成的文档已损坏。
关于如何实现我的目标的任何建议?
编辑:上面的示例HTML确实与$target = $table->addRow()->addCell(10000)
一起使用。我似乎在我使用的实际HTML中存在问题,一些标签似乎造成了问题。我已经剥离那些不是必需的,但现在已经结束了一个例外:
BadMethodCallException in AbstractContainer.php line 232:
Cannot add ListItem in TextRun.
这是奇怪,因为在工作示例HTML上面有列表项
答
试试这个
$table->addRow();
$resource_cell_left = $table->addCell(3000);
$resource_cell_left->addText('Test', array('name' => 'Century Gothic', 'size' => 9, 'bold' => true), array('align'=>'left'));
$resource_cell_right = $table->addCell(6000);
$resource_text->addText('Test ', array('name' => 'Century Gothic', 'size' => 9, 'bold' => true), array('align' => 'right'));
\PhpOffice\PhpWord\Shared\Html::addHtml($resource_cell_right, $html);
$resource_cell_right->addTextBreak();
你有使用'$ html'变量而不是'$ htmlString'作为'addHtml'方法的第二个参数 – hassan
对不起,我在代码块中输入代码块,在我的示例代码中正确引用了变量。我已经更新了问题并增加了更多细节 –