gpt4 book ai didi

java - 使用 Apache POI 读取 .docx 文件

转载 作者:行者123 更新时间:2023-12-02 09:21:42 27 4
gpt4 key购买 nike

我现在想读取整个 .docx 文件并将其打印到控制台中。我读到,如果没有 Apache POI 或 Docx4J,你就无法做到这一点,我尝试了这两种方法,但失败了两次。另外我知道这个问题已经存在于 Stackoverflow 上,但我担心它可能已经过时了。

这是我现在使用 Apache POI 的代码。

import java.io.File;
import java.io.FileInputStream;
import java.util.Iterator;
import java.util.List;

import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;

public class test {
public static void readDocxFile(String fileName) {
try {
File file = new File(fileName);
FileInputStream fis = new FileInputStream(file.getAbsolutePath());
XWPFDocument document = new XWPFDocument(fis);
List<XWPFParagraph> paragraphs = document.getParagraphs();
for (int i = 0; i < paragraphs.size(); i++) {
System.out.println(paragraphs.get(i).getParagraphText());
}
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
readDocxFile("C:\\Basics.docx");
}
}

它是从这里的另一个问题中获取的,但是它不起作用。我收到以下错误消息:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/compress/archivers/zip/ZipFile
at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:307)
at org.apache.poi.ooxml.util.PackageHelper.open(PackageHelper.java:37)
at org.apache.poi.xwpf.usermodel.XWPFDocument.<init>(XWPFDocument.java:142)
at test.readDocxFile(test.java:16)
at test.main(test.java:28)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.compress.archivers.zip.ZipFile
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:604)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 5 more

最佳答案

这是由于 POI 中没有直接包含的库造成的。如果您使用 Maven,请将以下依赖项添加到您的项目中:

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.18</version>
</dependency>

关于java - 使用 Apache POI 读取 .docx 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58656336/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com