You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PHPWord库导出含HTML<p>标签的docx文件内容为空问题

问题现象

使用PHPWord库生成docx文件时,基础代码运行正常,可导出包含“test”文本的文件,基础代码如下:

<?php

use \PhpOffice\PhpWord\PhpWord;

$phpWord = new PhpWord();
$section = $phpWord->addSection();
$section->addText('test');
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save('Appdividend.docx');
return response()->download(public_path('Appdividend.docx'));

将代码行$section->addText('test');替换为$section->addText('<p>test</p>');后,最终导出的docx文档内容为空。

故障原因

addText()方法的设计用途是插入纯文本内容,本身不具备HTML标签解析能力,直接传入包含HTML标签的字符串时,方法无法正确识别处理标签语法,最终导致内容渲染失败、文档空白。

修复方法

需要插入HTML格式内容时,不要使用addText()方法,调用PHPWord内置的HTML解析工具类处理即可,修复后的代码如下:

<?php

use \PhpOffice\PhpWord\PhpWord;
use \PhpOffice\PhpWord\Shared\Html;

$phpWord = new PhpWord();
$section = $phpWord->addSection();
// 调用addHtml方法解析传入的HTML内容
Html::addHtml($section, '<p>test</p>');
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save('Appdividend.docx');
return response()->download(public_path('Appdividend.docx'));
  • 使用提示:内置HTML解析器仅支持p、b、i、ul、ol、li、br、strong等基础富文本标签,不支持复杂CSS样式、自定义标签等内容,复杂排版需求建议直接调用PHPWord原生的样式设置接口实现。

内容的提问来源于stack exchange,提问作者Dimitur Dimitrov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 12:24:22