使用 PHPWord 的 TemplateProcessor 插入表格数据时,经常会遇到 'Can not clone row, template variable not found or variable contains markup.' 错误。这个错误通常是由于模板中的变量不存在或者包含了标记导致的。请确保以下几点:

  1. 模板中的变量名是否正确,没有拼写错误。
  2. 变量是否包含了标记,如 HTML 标签。如果是的话,可以尝试在变量中使用 strip_tags() 函数去除标记。
  3. 如果使用了循环插入表格数据,确保每个循环中的变量都存在或者使用了相同的标记。

以下是一个使用 TemplateProcessor 插入表格数据的示例代码:

require 'vendor/autoload.php';

use PhpOffice\PhpWord\TemplateProcessor;

// 创建 TemplateProcessor 对象
$templateProcessor = new TemplateProcessor('template.docx');

// 定义表格数据
$tableData = array(
    array('Name', 'Age', 'Gender'),
    array('John Doe', '30', 'Male'),
    array('Jane Smith', '25', 'Female'),
    array('Bob Johnson', '35', 'Male')
);

// 插入表格数据
$templateProcessor->cloneRowAndSetValues('Name', $tableData);

// 保存生成的文档
$templateProcessor->saveAs('output.docx');

在上面的示例中,我们首先创建了一个 TemplateProcessor 对象,并指定了模板文件。然后,我们定义了一个包含表格数据的数组。最后,我们使用 cloneRowAndSetValues() 方法将表格数据插入到模板中的表格中,并保存生成的文档。

确保模板中存在名为 Name 的变量,并且在模板中的表格中使用了如下标记将其作为表格的一行:

|Name|
|Age|
|Gender|

希望这个示例能够帮助你解决问题。如果问题仍然存在,请提供更多的代码和模板信息,以便我们更好地帮助你解决问题。

PHPWord TemplateProcessor 插入表格数据报错:'Can not clone row, template variable not found or variable contains markup.' 解决方法

原文地址: https://www.cveoy.top/t/topic/lHXJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录