The supplied data appears to be in the Office 2007+ XML.POI only supports OLE2 Office documents
时间: 2024-06-12 16:08:59 浏览: 200
"The supplied data appears to be in the Office 2007 XML"这个错误信息意味着你正在使用POI处理非OLE2 Office文档。POI只支持OLE2 Office文档格式,而不支持Office 2007 XML格式。要处理这种数据,你需要调用POI的其他部分,例如XSSF。因此,你可以尝试使用XSSF来处理该数据,而不是使用HSSF。
相关问题
The supplied data appears to be in the Office 2007+ XML. You are calling the part of POI that deals with OLE2 Office Documents.
您提到的"The supplied data appears to be in the Office 2007 XML. You are calling the part of POI that deals with OLE2 Office Documents."是在使用POI处理数据时遇到的问题。根据引用中的信息,您正在调用处理OLE2 Office文档的POI部分,而您需要调用另一个部分来处理Office 2007 XML数据,例如使用XSSF代替HSSF。
Caused by: org.apache.poi.poifs.filesystem.OfficeXmlFileException: The supplied data appears to be in the Office 2007+ XML.
这个异常通常发生在你试图使用HSSFWorkbook类来读取xlsx文件时。HSSFWorkbook类只能用于读取xls文件,读取xlsx文件需要使用XSSFWorkbook类。
如果你需要读取xlsx文件,可以尝试使用以下代码:
```java
try {
FileInputStream file = new FileInputStream(new File("example.xlsx"));
// 创建一个XSSFWorkbook对象
XSSFWorkbook workbook = new XSSFWorkbook(file);
// 获取第一个sheet
XSSFSheet sheet = workbook.getSheetAt(0);
// 遍历行
for (Row row : sheet) {
// 遍历单元格
for (Cell cell : row) {
// 输出单元格的值
System.out.print(cell.toString() + "\t");
}
System.out.println();
}
file.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
```
以上代码使用XSSFWorkbook类来读取xlsx文件,并遍历其中的行和单元格,输出单元格的值。
希望这可以帮助到你。
阅读全文