用PHP換個思路讀取WORD內容

藏色散人
發布: 2023-04-10 16:14:02
轉載
4866 人瀏覽過

用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 = &#39;word&#39;;
    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = &#39;word&#39;;
    /**
     * 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(&#39;测试.docx&#39;));
        $write=new \PhpOffice\PhpWord\Writer\HTML($result);
        $write->save(storage_path().&#39;/测试.html&#39;);
        //读取HTML内容
        $document=new \DOMDocument();
        $document->loadHTML(file_get_contents(storage_path(&#39;测试.html&#39;)));
        $html=simplexml_import_dom($document);
        dd((array)$html->body);
    }
}
登入後複製

開始測試:新測試.docx

測試.docx 內容:

用PHP換個思路讀取WORD內容

執行腳本:

php artisan word
登入後複製

結果:

用PHP換個思路讀取WORD內容

#

以上是用PHP換個思路讀取WORD內容的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:learnku.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!