java如何读word
读取Word文档的方法
在Java中读取Word文档通常使用Apache POI库或docx4j库。以下是两种常用方法的详细说明。
使用Apache POI读取Word文档
Apache POI是Apache基金会提供的开源库,支持读取和写入Microsoft Office格式文件。
添加依赖 在Maven项目中添加以下依赖:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.3</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
读取.docx文件
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import java.io.FileInputStream;
import java.io.IOException;
public class ReadDocx {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("example.docx");
XWPFDocument document = new XWPFDocument(fis);
for (XWPFParagraph paragraph : document.getParagraphs()) {
System.out.println(paragraph.getText());
}
document.close();
fis.close();
}
}
读取.doc文件

import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;
import java.io.FileInputStream;
import java.io.IOException;
public class ReadDoc {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("example.doc");
HWPFDocument document = new HWPFDocument(fis);
WordExtractor extractor = new WordExtractor(document);
System.out.println(extractor.getText());
document.close();
fis.close();
}
}
使用docx4j读取Word文档
docx4j是另一个专门处理Office Open XML格式的Java库。
添加依赖
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j</artifactId>
<version>11.4.4</version>
</dependency>
读取.docx文件

import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart;
import java.io.File;
public class ReadDocxWithDocx4j {
public static void main(String[] args) throws Exception {
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new File("example.docx"));
MainDocumentPart mainDocumentPart = wordMLPackage.getMainDocumentPart();
System.out.println(mainDocumentPart.getContent());
}
}
处理Word文档中的表格
使用Apache POI处理Word文档中的表格:
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;
// 在读取docx的代码中添加
for (XWPFTable table : document.getTables()) {
for (XWPFTableRow row : table.getRows()) {
for (XWPFTableCell cell : row.getTableCells()) {
System.out.print(cell.getText() + "\t");
}
System.out.println();
}
}
注意事项
不同版本的Word文档(.doc和.docx)需要使用不同的类来处理。.docx基于Office Open XML格式,而.doc基于二进制格式。
处理大型Word文档时,可能需要考虑内存使用情况,可以使用事件驱动的解析方式减少内存消耗。
读取Word文档时可能会遇到格式复杂的文档,需要根据实际需求调整解析逻辑。






