背景
承接上次提问 问答:[不懂就问]phpword中 IOFactory::load($paths)初始化doc文件失败
也不知道各位需不需要,算小弟的记录吧
环境
| laravel 8.0 |
| laravel-admin 1.8 |
| PHP 7.3 |
| PHPword 0.18.1 |
| |
安装就不赘述了
开发阶段
导入
- 弹出表单使用


- 文件上传转换
- 这边测试了,
doc
文档确实不支持暂时只写了docx
文件上传
| use Illuminate\Support\Facades\Storage; // laravel文件上传 |
| use App\Models; // 操作模型 |
| use PhpOffice\PhpWord\IOFactory; // PhpWord 初始化文件方法 |
| use PhpOffice\PhpWord; // PhpWord |
- 文件上传也不赘述了… 我懒~ 哎嘿~
- 替换zip服务
PhpWord\Settings::setZipClass(PhpWord\Settings::PCLZIP);
| $wordfile = IOFactory::load($fileName); |
| $xmlWriter = IOFactory::createWriter($wordfile, "HTML"); |
| $html = $xmlWriter->getContent(); |
| |
导入结果测试
导出
| use PhpOffice\PhpWord\PhpWord; |
| use PhpOffice\PhpWord\IOFactory; |
| use PhpOffice\PhpWord\Shared\Html; |
| use PhpOffice\PhpWord\Writer\Html as WriteHtml; |
| $phpWord = new PhpWord(); |
| $section = $phpWord->addSection(); |
| $html = new Html(); |
| $doc = new \DOMDocument(); |
| $doc->loadHTML($model->content); |
| $doc->saveXml(); |
| $html::addHtml($section, $doc->saveXml(), true, false); |
| $phpWord->save('word/'.$model->title.'.docx'); |
| $url = env('APP_URL').'/word/'.$model->title.'.docx'; |
| return $this->response()->success('导出成功')->download($url); |
导出结果测试
end…
