解决 Apache POI 中的 'OLE2NotOfficeXmlFileException' 错误

如果您在 Java 中使用 Apache POI 库处理 Excel 文件时遇到 'Exception in thread "main" org.apache.poi.openxml4j.exceptions.OLE2NotOfficeXmlFileException' 错误,则表示您尝试使用错误的 POI 库组件打开文件。

错误原因

此错误消息表明您尝试使用 XSSFWorkbook 类打开旧版 Excel 文件(.xls 格式),而该类专为处理较新的 OOXML 格式(.xlsx 格式)而设计。旧版 Excel 文件使用 OLE2 格式,需要使用 HSSFWorkbook 类进行处理。

解决方案

要解决此错误,您需要使用 HSSFWorkbook 类替换 XSSFWorkbook 类来处理旧版 Excel 文件。

以下是使用 HSSFWorkbook 类打开和处理旧版 Excel 文件的示例代码:javaimport org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.*;import java.io.FileInputStream;import java.io.IOException;

public class ExcelChartExample { public static void main(String[] args) { try { FileInputStream file = new FileInputStream('path/to/your/file.xls'); Workbook workbook = new HSSFWorkbook(file); Sheet sheet = workbook.getSheetAt(0); // 处理工作簿的其余代码 workbook.close(); file.close(); } catch (IOException e) { e.printStackTrace(); } }}

请务必将 'path/to/your/file.xls' 替换为您的 OLE2 文件的实际路径。

通过使用 HSSFWorkbook 类,您将能够正确处理旧版 Excel 文件,并避免 'OLE2NotOfficeXmlFileException' 错误。

如何解决 'Exception in thread

原文地址: https://www.cveoy.top/t/topic/f3Rc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录