PHP读取WORD

MYDTX -
PHP读取WORD

项目:问卷
需求:WORD导入问卷
背景:运营那里有几百个WORD格式问卷,如果去后台手动录入,无疑工作量很大,希望能直接导入。
心情:接到需求之后五味杂陈,因为以前做过excel导入,而且有现成的插件,代码也是一搜索一堆。
word导入无疑涉及到了知识盲点,但是需求就在那里,又怼不过产品同学!只能硬着头皮上了。
难点:word不好读取内容,内容读出来不好结构化。
解决问题思路:先读取WORD,再说怎么结构化。
读取WORD:一开始想着用PHPWORD,毕竟PHPOFFICE这么成熟的插件应该可以直接读取到WORD内容吧。
然而现实很骨感,找遍了文档并没有找到直接读取到WORD内容的方法。PHPWORD只提供了把WORD转换成HTML,TDF的方法。
转换思路:既然不能读取WORD,那我可以读取HTML,只需要把WORD转换成HTML就可以了,然后读取HTML内容就行。

代码:

<?php

namespace 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

结果:

特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

php介绍

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

Tags 标签

phplavarel

扩展阅读

加个好友,技术交流

1628738909466805.jpg