我正在使用apache poi阅读excel文件3.16这里是我的代码
try
{
String excelPath = "C:\\Users\\wecme\\Desktop\\AccountStatement.xls";
FileInputStream fileInputStream = new FileInputStream(new File(excelPath));
// Create Workbook instance holding .xls file
XSSFWorkbook workbook = new XSSFWorkbook(fileInputStream);
// Get the first worksheet
XSSFSheet sheet = workbook.getSheetAt(0);
// Iterate through each rows
java.util.Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext())
{
// Get Each Row
Row row = rowIterator.next();
// Iterating through Each column of Each Row
java.util.Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext())
{
Cell cell = cellIterator.next();
// Checking the cell format
switch (cell.getCellType())
{
case Cell.CELL_TYPE_NUMERIC:
System.out.print(cell.getNumericCellValue() + "\t");
break;
case Cell.CELL_TYPE_STRING:
System.out.print(cell.getStringCellValue() + "\t");
break;
case Cell.CELL_TYPE_BOOLEAN:
System.out.print(cell.getBooleanCellValue() + "\t");
break;
}
}
System.out.println("");
}
} catch (IOException ie)
{
ie.printStackTrace();
}
我的Excel数据如下所示:
Datetime Description TransactionId Credit Amount Debit Amount Remaining OdAmount EnteredBy Remarks
1/6/2017 8:14 IDEA (9542010237) COMMISSION GLGHQN 0.31 0 2721.92 0 iNHYD0390437LO IDEA COMMISSION
当我读到其他没有时间的文件时,正确读取日期,但是当我尝试阅读此文件时,此异常即将来临
Exception in thread "main" org.apache.poi.openxml4j.exceptions.NotOfficeXmlFileException: No valid entries or contents found, this is not a valid OOXML (Office Open XML) file
at org.apache.poi.openxml4j.opc.ZipPackage.getPartsImpl(ZipPackage.java:286)
at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:758)
at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:327)
at org.apache.poi.util.PackageHelper.open(PackageHelper.java:37)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:291)
at excelRead.ReadExcel.main(ReadExcel.java:27)
请帮帮我,谢谢。
答案 0 :(得分:1)
您正在创建一个仅适用于处理xlsx文件的XSSFWorkbook
,即基于xml的新办公室格式。但是,您的文件扩展名(xls)表明这是较旧的Microsoft Office(2003年我猜)格式。要修复错误,您需要将文件转换为xlsx格式,或者需要使用HSSFWorkbook
您可以在此处找到有关HSSF的一些示例:https://poi.apache.org/spreadsheet/examples.html#hssf-only 有关XDDF的一些示例可以在这里找到:https://poi.apache.org/spreadsheet/examples.html#xssf-only
答案 1 :(得分:0)
根据抛出异常的代码(参见:https://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/ZipPackage.java?view=markup#l286)
并且包的名称(openxml4j)要求文件采用openxml兼容格式。 (即xlsx)
在您的情况下,库无法打开文件,因为它不是可以打开的.zip格式。
这个问题也在两个月前被问过,也许这也有帮助: