用PHP换个思路读取WORD内容

用PHP换个思路读取WORD内容,第1张

概述用PHP换个思路读取WORD内容

项目:问卷

需求:WORD 导入问卷

背景:运营那里有几百个 WORD 格式问卷,如果去后台手动录入,无疑工作量很大,希望能直接导入。

心情:接到需求之后五味杂陈,因为以前做过 excel 导入,而且有现成的插件,代码也是一搜索一堆。

word 导入无疑涉及到了知识盲点,但是需求就在那里,又怼不过产品同学!只能硬着头皮上了。

难点:word 不好读取内容,内容读出来不好结构化。

解决问题思路:

先读取 WORD, 再说怎么结构化。

读取 WORD:

一开始想着用 PHPWORD, 毕竟 PHPOFFICE 这么成熟的插件应该可以直接读取到 WORD 内容吧。

然而现实很骨感,找遍了文档并没有找到直接读取到 WORD 内容的方法。PHPWORD 只提供了把 WORD 转换成 HTML,TDF 的方法。

转换思路:

既然不能读取 WORD, 那我可以读取 HTML, 只需要把 WORD 转换成 HTML 就可以了,然后读取 HTML 内容就行。

代码:

<?PHPnamespace App\Console\Commands;use Illuminate\Console\Command;use PHPOffice\PHPSpreadsheet\Reader\HTML;use PHPOffice\PHPWord\Reader\Word2007;class Test extends Command {    /**     * The name and signature of the console command.     *     * @var string     */    protected $signature = 'word';    /**     * The console command description.     *     * @var string     */    protected $description = 'word';    /**     * Create a new command instance.     *     * @return voID     */    public function __construct() {        parent::__construct();    }    /**     * Execute the console command.     *     * @return int     */    public function handle(Word2007 $word) {        //WORD转换HTML        $result=$word->load(storage_path('测试.docx'));        $write=new \PHPOffice\PHPWord\Writer\HTML($result);        $write->save(storage_path().'/测试.HTML');        //读取HTML内容        $document=new \DOMdocument();        $document->loadHTML(file_get_contents(storage_path('测试.HTML')));        $HTML=simplexml_import_dom($document);        dd((array)$HTML->body);    }}

开始测试:新建 测试.docx

测试.docx 内容:

执行脚本:

PHP artisan word

结果:

总结

以上是内存溢出为你收集整理的用PHP换个思路读取WORD内容全部内容,希望文章能够帮你解决用PHP换个思路读取WORD内容所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/1008665.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存