プロジェクト: アンケート
要件: WORD インポート アンケート
背景: 作業では何百もの WORD 形式のアンケートがあります。バックエンドに手動で入力するには、間違いなく多くの作業が必要です。直接インポートできることを願っています。
気分: ご依頼をいただいた後は複雑な気持ちになりました。以前にも Excel インポートを行ったことがあるのですが、既製のプラグインがあり、コードを検索する必要が多かったので。
Word インポートには間違いなく知識の盲点が含まれますが、需要は存在するため、製品のクラスメートに勝つことはできません。もう我慢するしかなかった。
難しさ: Word は内容を読むのが難しく、読んだときに内容が適切に構成されていません。
問題を解決するためのアイデア:
まず単語を読んでから、それをどのように構成するかについて話します。
Read 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); } }テストの開始: 新しい test.docxTest.docx コンテンツ:
##スクリプトの実行:
php artisan word
結果:
以上がPHP を使用して WORD コンテンツの読み取り方法を変更するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。