• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP读取WORD

php 搞代码 3年前 (2022-02-28) 9次浏览 已收录 0个评论

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

代码:

<code class="php"><?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内容:
执行脚本:

<code class="shell">php artisan word

后果:


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP读取WORD
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址