前言
今天遇到一个读取word模板内容的需求,在网上找了很多种方案,有的代码比较复杂,有的读出来中文乱码,个人觉得使用Apache下面的poi包去实现起来比较简单,并且不会出现中文乱码的情况。
XWPFDocument
这次要用到一个新的类:XWPFDocument,它代表一个docx文档。是apache基金会提供的用户导出Word文档的工具类。
引入依赖
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.0.0</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.0.0</version> </dependency>
准备一个word文档
提前准备一个word文档,随便写点内容:
编写demo
然后简单编写一个demo,测试下读取文件里面的内容:
package com.test; import org.apache.poi.xwpf.extractor.XWPFWordExtractor; import org.apache.poi.xwpf.usermodel.XWPFDocument; import java.io.File; import java.io.FileInputStream; public class FileTest { public static void main(String[] args){ File file = new File("C:\\Users\\PC\\Desktop\\test.docx"); FileInputStream fis = null; XWPFDocument document = null; XWPFWordExtractor extractor = null; try { fis = new FileInputStream(file); document = new XWPFDocument(fis); extractor = new XWPFWordExtractor(document); System.out.println(extractor.getText()); } catch (Exception e) { e.printStackTrace(); } } }
运行查看结果
通过控制台可以看到,可以正常的读取到里面的内容
扩展
上面的用的是是docx类型的,对于doc类型也是支持的:
总结
关于这个包的使用,会再次更新,想要实现通过Java读取word文件内容,也不是这一种方式,个人觉得简单好用,再次推荐给大家