请有人能告诉我在phpword中使用cloneblock的语法。
因此,我已经在MySQL数据库中获取了数据,对于需要通过phpword导入到我的word文档中的单行,它可以正常工作....运行我的查询并搜索并替换为模板处理器。但是,现在我想在Word文档中插入多行。我研究发现,cloneblock方法就是答案。但是我无法使其工作....当前,我的代码正在运行,但似乎未进入第二行。
我实际上没有收到任何错误消息。我的代码执行正常...但是最终显示的单词文件无法正常显示....如果您看到我的代码,我得到了一个echo语句...该echo恰好在我的浏览器中输出了我想要的“损坏”& “好”(作为行数据之一的示例),但该数据不会像这样被拖入我的word文档中……它重复了“损坏”,“损坏”。
$group_key=1;
do {
//loop to increase my uuid - ($repeatgroup')
$repeatgroup = $id."/"."trailer_repeat_group"."[".$group_key."]";
// query string
$trailer_repeat_grouping = mysqli_query($connect, "SELECT * FROM trailer_repeat_group LEFT JOIN main on trailer_repeat_group.PARENT_KEY = main.metainstanceID WHERE trailer_repeat_group.KEY_id = '$repeatgroup'");
$templateProcessor->cloneBlock('CLONEME', $trailer_count);
while ($row1 = mysqli_fetch_array($trailer_repeat_grouping)) {
//this echo below I am using to test exactly what happends – independent of
//PHPword/templateprocessor
echo $rttc = $row1['right_trailer_tyre_condition'];
//inserting / searching / inserting values
$templateProcessor->setValue("right_trailer_tyre_condition", $rttc);
}
// ending of loop / checking loop
$group_key++;
} while ($group_key <= $trailer_count);
答案 0 :(得分:0)
我已经进行了调查并找到了解决方案。
您要克隆相同的块 N次:
$ templateProcessor-> cloneBlock('CLONEME',$ trailer_count);
,然后通过提取来尝试将right_trailer_tyre_condition
替换为某些值:
$templateProcessor->setValue("right_trailer_tyre_condition", $rttc);
问题是您要替换 所有占位符。
但是实际上,您需要用不同值将它们一个替换为。
解决方案是定义第三个参数,这表示要替换的项目数。
只需将其更改为:
$templateProcessor->setValue("right_trailer_tyre_condition", $rttc, 1);