前言:
通常我们用apache 的POI库对以上文档进行操作,apache POI官网
apache POI官网
这里推荐到官网下载导入到项目,maven下载的它会缺少几个包。
格式上后缀带x(docx、pptx、xlsx)是不带x(doc、ppt、xls)的拓展,在体积更小,功能更强,安全性更高,如果用不带x格式强制打开带x格式的,可能会丢失少量数据,因此,poi在操作这俩类文件时,是用不同系列的包的,注意,文件本身是什么格式的,就是什么格式的,不可以去解析那些通过修改文件后缀名格式的文件( 比如原本你的文件是doc格式,你强制修改后缀为docx,那么这时你是无法用docx的包去解析该文件的)。
word文件读取
从下图中可以看到,如果用doc处理方法去处理docx文档,它会告诉你该文档本身是ooxml文档,即docx文档,无法处理
public static String readDoc(String path) throws Exception {
StringBuffer content = new StringBuffer("");// 文档内容
HWPFDocument doc = new HWPFDocument(new FileInputStream(path));
Range range = doc.getRange();
int paragraphCount = range.numParagraphs();// 段落
for (int i = 0; i < paragraphCount; i++) {
// 遍历段落读取数据
Paragraph pp = range.getParagraph(i);
content.append(pp.text());
}
return content.toString().trim();
}
从下图中我们可以看到,用解析doc的包解析docx会报错,官方提示你可以用HSSF的包来解析docx,这里我们用另一高效的处理类(ooxml)来处理docx格式,当然,该类目前还不成熟和稳定。
//docx格式,主要用ooxml包读取
public static String readDocx(String path) throws Exception