工作上遇到如何读取Word文档中的表格内容,表格是有业务数据意义的,而且有一定规则的,因此不能直接读取表格文本,而是遍历表格单元格进行一行一列读取。
表格规则:
(1)表格可以有表头,表头也有业务意思
(2)一行为一个业务数据,可能会跨行
(3)列可能会有跨列、跨行
(4)单元格中图片、数学公式、嵌套表格、文件等
比如,以下表格
具体代码:https://github.com/suncht/wordtable-read
目前功能如下:
- 目前只支持读取2007以上Word文档表格单元格的文本,支持读取图片、数学公式。
- 支持一般性的有规则的复杂表格。
- 暂不支持2007以下的Doc类型文档,因为POI中暂未找到关于表格单元格定位的API。
- 为了兼容2007以下的Doc类型文档,利用jodconverter3.0 + LibreOffice 5.3,“先将Doc类型文档转换为Docx类型文档,再进行读取表格内容”。 注意:LibreOffice直接支持Docx类型文档,而OpenOffice不能直接支持Docx类型文档,需要AccessODF插件