建立个公司网站,装修设计公司电话,帮别人做网站哪里可以接单,android网站开发视频教程PHPWord
本来想着当调包侠呢#xff0c;结果翻了一遍文档#xff0c;没有这种操作支持#xff0c;阿这#x1f602;
GPT
不出意外的一顿胡扯#xff0c;给#x1f468;#x1f9b3;气的要中风啦
思路
word 也就是docx结尾的文件本质上就是xml字符串#xff0c; …PHPWord
本来想着当调包侠呢结果翻了一遍文档没有这种操作支持阿这
GPT
不出意外的一顿胡扯给气的要中风啦
思路
word 也就是docx结尾的文件本质上就是xml字符串 两个word文件合并其实就是把两个字符串拼接起来你真是小天才呢
具体步骤
原地址 【能打开的直接抄就完啦】
打不开的也别急我给你搬运一份奥 首先要拓展一下官方的类为啥涅里面的属性咱拿不到 class OpenTemplateProcessor extends \PhpOffice\PhpWord\TemplateProcessor {public function __construct($instance) {return parent::__construct($instance);}public function __get($key) {return $this-$key;}public function __set($key, $val) {return $this-$key $val;}
}然后就可以愉快的拼接xml字符串啦,有一些xml的固定格式需要注意
$mainTemplateProcessor new \common\helpers\OpenTemplateProcessor($filename);$innerTemplateProcessor new \common\helpers\OpenTemplateProcessor($filename);// 拓展类就是为了拿到他的xml
$innerXml $innerTemplateProcessor-tempDocumentMainPart;
$innerXml preg_replace(/^[\s\S]*w:body(.*)\/w:body.*/ , $1 , $innerXml);// remove tag containing header, footer, images
$innerXml preg_replace(/w:sectPr.*\/w:sectPr/ , , $innerXml);// 把取出来的内容放进/w:body 结束符之前
$mainXml $mainTemplateProcessor-tempDocumentMainPart;
$mainXml preg_replace(/\/w:body/, w:pw:rw:br w:type page /w:lastRenderedPageBreak//w:r/w:p . $innerXml . /w:body , $mainXml);
$mainTemplateProcessor-tempDocumentMainPart $mainXml;
$mainTemplateProcessor-saveAs($folder . 1.docx);