gpt4 book ai didi

Java POI 提供的数据似乎在 Office 2007+ XML 中

转载 作者:搜寻专家 更新时间:2023-10-30 20:56:43 26 4
gpt4 key购买 nike

我收到这个错误:

org.apache.poi.poifs.filesystem.OfficeXmlFileException: The supplied data appears to be in the Office 2007+ XML. You are calling the part of POI that deals with OLE2 Office Documents. You need to call a different part of POI to process this data (e.g. XSSF instead of HSSF)

我阅读了 throw Google,发现我需要使用 XSSF 而不是 HSSF,因为我的 Excel 文件是 xlsx,但正如您在我的 maven 中看到的那样,我已经在使用 xlsx。请问我哪里出错了?

<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.13-beta1</version>
</dependency>

产生异常的代码是:

POIFSFileSystem fs;

fs = new POIFSFileSystem(new FileInputStream(getFilePath()));

我的新代码

public void getBColum() {
try {
OPCPackage fs;

fs = new OPCPackage.open(new File(getFilePath()));

XSSFWorkbook wb = new XSSFWorkbook(fs);
XSSFSheet sheet = wb.getSheet("Master column name - Used Car");
XSSFRow row;
CellReference cr = new CellReference("A1");
row = sheet.getRow(cr.getCol());
System.out.println(row.getCell(3));
} catch (FileNotFoundException e) {
if (logger.isDebugEnabled()) {
logger.debug("How can this error be possible? we should have already thrown an exception in the construction");
}
} catch (IOException e) {
logger.error(String.format("Exception in reading the file: %s",
e.getMessage()));
}
}

我在 new oPCPackage.open 中有一个编译错误:

OPCPackage.open cannot be resolved to a type

最佳答案

根据Apache POI Quick Guide , POIFSFileSystem(或类似的 NPOIFSFileSystem)仅用于 .xls(Excel 版本到 2003)文档。

.xlsx 文档 (Excel 2007+) 的等效项是 OPCPackage

OPCPackage pkg = OPCPackage.open(new File("file.xlsx"));

您可以从 OPCPackage 创建一个 XSSFWorkbook:

XSSFWorkbook wb = new XSSFWorkbook(pkg);

或者您可以直接创建它:

XSSFWorkbook wb = new XSSFWorkbook(new File("file.xlsx"));

通常最好使用 File 而不是 InputStream 创建工作簿,以节省内存。

此外,如果您想要的代码不关心它是 .xls 还是 .xlsx:

// or "file.xlsx"
Workbook wb = WorkbookFactory.create(new File("MyExcel.xls"));

关于Java POI 提供的数据似乎在 Office 2007+ XML 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31844308/

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