Laravel 和 phpword 可能性

Laravel and phpword possibilities

我用的是laravel,但我觉得这个问题更多的是关于php这个词。

这个包是否可以在某些时候导出带有自定义文本的单词?

例如,我的word模板包含三个要更改的位置。那么使用 phpword 我可以在这三个位置导出带有自定义文本的模板吗?

我可以只更改部分文本还是必须更改所有段落?

谢谢你的信息。

您可以使用setValue()方法替换文字。

根据您使用的版本,使用 0.12.0 及更高版本 \PhpOffice\PhpWord\TemplateProcessor

public function setValue($search, $replace, $limit = self::MAXIMUM_REPLACEMENTS_DEFAULT)
{
    if (is_array($search)) {
        foreach ($search as &$item) {
            $item = self::ensureMacroCompleted($item);
        }
    } else {
        $search = self::ensureMacroCompleted($search);
    }
    if (is_array($replace)) {
        foreach ($replace as &$item) {
            $item = self::ensureUtf8Encoded($item);
        }
    } else {
        $replace = self::ensureUtf8Encoded($replace);
    }
    if (Settings::isOutputEscapingEnabled()) {
        $xmlEscaper = new Xml();
        $replace = $xmlEscaper->escape($replace);
    }
    $this->tempDocumentHeaders = $this->setValueForPart($search, $replace, $this->tempDocumentHeaders, $limit);
    $this->tempDocumentMainPart = $this->setValueForPart($search, $replace, $this->tempDocumentMainPart, $limit);
    $this->tempDocumentFooters = $this->setValueForPart($search, $replace, $this->tempDocumentFooters, $limit);
}

Link 到方法 -> https://github.com/PHPOffice/PHPWord/blob/develop/src/PhpWord/TemplateProcessor.php#L208

0.12.0版本之前使用\PhpOffice\PhpWord\Template

public function setValue($search, $replace, $limit = -1)
{
    foreach ($this->headerXMLs as $index => $headerXML) {
        $this->headerXMLs[$index] = $this->setValueForPart($this->headerXMLs[$index], $search, $replace, $limit);
    }
    $this->documentXML = $this->setValueForPart($this->documentXML, $search, $replace, $limit);
    foreach ($this->footerXMLs as $index => $headerXML) {
        $this->footerXMLs[$index] = $this->setValueForPart($this->footerXMLs[$index], $search, $replace, $limit);
    }
}

Link 到方法 -> https://github.com/PHPOffice/PHPWord/blob/e35838f7d7928b2308df3f7f0ef6d49bf96f453c/src/PhpWord/Template.php#L131