使用 Java Apache POI 从只读 xlsm 文件读取数据

ajs*_*ajs 5 java file-io xlsx apache-poi

我正在尝试使用 java apache poi 从只读 xlsm 读取数据,但是当我使用 XSSF 工作簿时,它似乎无法访问该文件,并且 HSSF 工作簿仅适用于 xls 文件。我的代码如下所示:

try {
                FileInputStream file = new FileInputStream(new File("file.xlsm"));
                System.out.println("found file");
                XSSFWorkbook workbook = new XSSFWorkbook(file);
                System.out.println("in workbook");
                XSSFSheet sheet = workbook.getSheet("Shipments");
                System.out.println("got sheet");
Run Code Online (Sandbox Code Playgroud)

该代码永远不会到达“工作簿中”打印行,我不知道为什么。请帮忙!

小智 -2

我复制了你的代码并给出了文件的绝对路径,并且我能够得到预期的结果。

FileInputStream file = new FileInputStream(new File("C:\\Users\\user\\Desktop\\filet.xlsm"));
System.out.println("found file");
XSSFWorkbook workbook = new XSSFWorkbook(file);
System.out.println("in workbook");
XSSFSheet sheet = workbook.getSheet("Shipments");
System.out.println("got sheet");
Run Code Online (Sandbox Code Playgroud)

看来你的引用有问题。因此,当您尝试创建文件资源时,请检查引用文件的方式

  • 我尝试了相同的代码,并且得到了以下 java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlException。如果您有任何线索,请帮助我 (2认同)