loading请求处理中...

用PHP换个思路读取WORD内容

2021-12-03 07:27:22 阅读 10429次 标签: 开发 作者: yipinweike01

  项目:问卷

用PHP换个思路读取WORD内容

  需求:WORD 导入问卷

  背景:运营那里有几百个 WORD 格式问卷,如果去后台手动录入,无疑工作量很大,希望能直接导入。

  心情:接到需求之后五味杂陈,因为以前做过 excel 导入,而且有现成的插件,代码也是一搜索一堆。

  word 导入无疑涉及到了知识盲点,但是需求就在那里,又怼不过产品同学!只能硬着头皮上了。

  难点:word 不好读取内容,内容读出来不好结构化。

  解决问题思路:

  先读取 WORD, 再说怎么结构化。

  读取 WORD:

  一开始想着用 PHPWORD, 毕竟 PHPOFFICE 这么成熟的插件应该可以直接读取到 WORD 内容吧。

  然而现实很骨感,找遍了文档并没有找到直接读取到 WORD 内容的方法。PHPWORD 只提供了把 WORD 转换成 HTML,TDF 的方法。

  转换思路:

  既然不能读取 WORD, 那我可以读取 HTML, 只需要把 WORD 转换成 HTML 就可以了,然后读取 HTML 内容就行。

  代码:


  43

  namespace AppConsoleCommands;

  use IlluminateConsoleCommand;

  use PhpOfficePhpSpreadsheetReaderHtml;

  use PhpOfficePhpWordReaderWord2007;

  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 PhpOfficePhpWordWriterHTML($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 内容:

  

  执行脚本:

  1php artisan word

  结果:

  

  专业事找专业人做,一品威客聚集了五湖四海优质的服务商,如果你需要app开发网络推广设计,文案写作,营销策划等服务,欢迎到一品威客网发布相关任务,让广大的服务商为您解决难题。

Tag: PHP

开发公司推荐

成为一品威客服务商,百万订单等您来有奖注册中

留言( 展开评论

快速发任务

价格是多少?怎样找到合适的人才?

官方顾问免费为您解答

 
相关任务
DESIGN TASK 更多
回合制游戏开发

¥20000 已有3人投标

同城物流小程序开发

¥10000 已有25人投标

摊位信息撮合平台APP开发

¥50000 已有14人投标

小程序二次开发和维护升级

¥5000 已有21人投标

咸鱼链接验证系统开发

¥1000 已有0人投标