实战|Java读取Word,包括表格!转载本文请联系JAVA日知录公众号。天天发鸡汤不行,今天分享一个开发实践。业务需求我们有这样一个需求,需要将WORD文档中的内容提取出来,然后组装成特定的json格式,发送给第三方引擎接口。输入协议如下:{"tables":[{"cells":[{"col":1,"row_span":1,"row":1,"col_span":1,"content":"vehiclename"}],"id":0,"row_num":2}],"paragraps":[{"para_id":1,"content":"Hello,JAVARizhilu"}]}这种输入格式需要我们阅读段落和表格中单词的内容。既然需求确定了,那么就开始动手写代码吧。基于POI实现,拿《如何在java中读word》去百度一搜,答案基本都是用POI实现的。当然,使用POI确实可以按段落和表格提取内容拼装成上面的格式,但是在实践过程中有两个问题:docx和docPOI这两种格式需要分别处理,docPOI使用不同的API来读取docx和文档。所以读逻辑我们需要写两次。当POI读取文档段落时,它也会读取表格的内容。这个问题比较可怜。POI有单独的方法读取文档中的所有表格,但是在读取doc格式的段落文档时,也会读取表格的内容。out,所以需要用下面的方法来排除表格://readdocHWPFDocumentdoc=newHWPFDocument(stream);Rangerange=doc.getRange();//readparagraphintnum=range.numParagraphs();Paragraphpara;for(inti=0;i
