在PHPWord

时间:2015-05-13 19:05:26

标签: php phpword

我是新手使用这个PHPWord库,到目前为止我很喜欢它。

如果有人可以帮我解决这个问题或者确认我是否可能,我会非常感激。

似乎需要按照您希望它们在页面上显示的顺序创建部分,但我正在寻找一种方法来重新排序它们,或者更好的是,甚至将它们嵌套在另一个中

$pSectionPointer = $oPHPWord->addSection();
$pAnotherSectionPointer = $oPHPWord->addSection();
$pFirstSectionPointer = $oPHPWord->addSection();

它们按照我构造它们的顺序出现在文档中,这在某些时候很好,但是在我的代码中稍后我可能会或者可能不想根据我的一些新数据更改部分的顺序码。所以我想将$pFirstSectionPointer移到$pSectionPointer之前。

我该怎么做?

我尝试使用API​​中提供的setter来设置/更改sectionId和其他属性,以尝试更改顺序,但是没有解释每种方法,它们似乎都没有做我想要的要做。

2 个答案:

答案 0 :(得分:2)

稍微调试一下PhpWord代码后,这些(嵌套或重新排序)似乎都不可能:只允许在主级别(不在另一个部分内)的部分,并且库不提供任何改变方法部分排序(结果部分顺序看起来基于附加新部分的$ sections数组 - 在addPction函数调用 - 在PhpWord.php中,并且该数组不能通过API调用修改)。

如果你真的需要对这些部分进行一些重新排序的可能性,你可以尝试使用你需要的功能自己修改一下PhpWord.php文件:我用简单的内容和简单的功能快速测试了这个现有的section数组。有了这些,我得到了一个结果文件,反转部分顺序没有问题......

答案 1 :(得分:0)

使用最新的dev-develop版本(或版本0.15),您可以通过将可调用的内容传递给$ phpWord-> sortSections(...)来对这些部分进行排序 在内部,它将使用uasort对数组进行排序。