java读取word文档并显示在页面上
要在 Java 中读取 Word 文档并将其内容显示在页面上,你可以使用 Apache POI 库来处理 Word 文档。Apache POI 是一个用于操作 Microsoft Office 格式文件的开源库,支持 .doc
和 .docx
文件格式。以下是详细的步骤和示例代码,展示如何使用 Apache POI 读取 Word 文档并在 Java 应用程序中显示内容。
步骤和示例代码
1. 添加 Apache POI 依赖
首先,你需要将 Apache POI 依赖添加到你的项目中。如果你使用的是 Maven,可以在 pom.xml
文件中添加以下依赖:
xml<dependencies>
<!-- Apache POI for .docx files -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
<!-- Apache POI for .doc files -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.3</version>
</dependency>
<!-- Required for .doc files -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
</dependency>
</dependencies>
2. 读取 Word 文档
读取 .docx
文件:
javaimport org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import java.io.FileInputStream;
import java.io.IOException;
public class ReadDocxExample {
public static void main(String[] args) {
String filePath = "path/to/your/document.docx"; // 替换为你的文件路径
try (FileInputStream fis = new FileInputStream(filePath);
XWPFDocument document = new XWPFDocument(fis)) {
for (XWPFParagraph paragraph : document.getParagraphs()) {
System.out.println(paragraph.getText());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
读取 .doc
文件:
javaimport org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.Range;
import java.io.FileInputStream;
import java.io.IOException;
public class ReadDocExample {
public static void main(String[] args) {
String filePath = "path/to/your/document.doc"; // 替换为你的文件路径
try (FileInputStream fis = new FileInputStream(filePath);
HWPFDocument document = new HWPFDocument(fis)) {
Range range = document.getRange();
System.out.println(range.text());
} catch (IOException e) {
e.printStackTrace();
}
}
}
3. 显示内容在 GUI 页面上
你可以使用 Swing 或 JavaFX 来显示文档内容。以下是使用 Swing 的示例代码:
javaimport javax.swing.*;
import java.awt.*;
import java.io.FileInputStream;
import java.io.IOException;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
public class DisplayDocxInSwing {
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
JFrame frame = new JFrame("Word Document Viewer");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 400);
JTextArea textArea = new JTextArea();
textArea.setEditable(false);
StringBuilder sb = new StringBuilder();
String filePath = "path/to/your/document.docx"; // 替换为你的文件路径
try (FileInputStream fis = new FileInputStream(filePath);
XWPFDocument document = new XWPFDocument(fis)) {
for (XWPFParagraph paragraph : document.getParagraphs()) {
sb.append(paragraph.getText()).append("\n");
}
} catch (IOException e) {
e.printStackTrace();
}
textArea.setText(sb.toString());
frame.add(new JScrollPane(textArea), BorderLayout.CENTER);
frame.setVisible(true);
});
}
}
总结
- 添加 Apache POI 依赖:确保你的项目中包含 Apache POI 相关依赖。
- 读取 Word 文档:
- 使用
XWPFDocument
类读取.docx
文件。 - 使用
HWPFDocument
类读取.doc
文件。
- 使用
- 显示内容:使用 Swing 或 JavaFX 将读取的内容显示在 GUI 组件中。
关键字
Java, Apache POI, 读取 Word 文档, .docx
文件, .doc
文件, Swing, JavaFX, 文件路径, 文档内容