Projet : Questionnaire
Exigence : Questionnaire d'importation WORD
Contexte : Il y a des centaines de questionnaires au format WORD dans l'opération Si vous allez dans le backend pour les saisir manuellement, ce sera sans aucun doute beaucoup de travail. j'espère les importer directement.
Humeur : Après avoir reçu la demande, j'ai eu des sentiments mitigés, car j'ai déjà fait de l'importation Excel, et il existe des plug-ins prêts à l'emploi, et je dois rechercher beaucoup de codes.
L'importation de mots implique sans aucun doute des angles morts en matière de connaissances, mais la demande est là et vous ne pouvez pas battre vos camarades de classe produit ! Je devais juste mordre la balle.
Difficulté : Word est difficile à lire et le contenu n'est pas bien structuré une fois lu.
Choses pour résoudre le problème :
Lisez d'abord le MOT, puis parlez de la façon de le structurer.
Lire WORD :
Au début, j'ai pensé à utiliser PHPWORD. Après tout, un plug-in mature comme PHPOFFICE devrait être capable de lire directement le contenu de WORD.
Cependant, la réalité est très moche. J'ai cherché dans tous les documents et je n'ai pas trouvé de moyen de lire directement le contenu de WORD. PHPWORD fournit uniquement des méthodes pour convertir WORD en HTML et TDF.
Idée de conversion :
Comme je ne peux pas lire WORD, je peux lire le HTML, j'ai juste besoin de convertir WORD en HTML, puis de lire le contenu HTML.
Code :
<?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); } }
Démarrer le test : Nouveau test.docx
Test.docx Contenu :
Exécuter le script :
php artisan word
Résultat :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!