gpt4 book ai didi

java - 读取 .xls 和 .xlsx 格式的 excel 文件时出现 jxl.read.biff.BiffException 异常

转载 作者:行者123 更新时间:2023-11-30 07:23:14 26 4
gpt4 key购买 nike

使用下面的代码,我得到jxl.read.biff.BiffException:无法识别OLE流。我想使用 .xls 和 .xlsx 格式文件。怎么解决这个问题?

Service.java

@Override
public boolean facultyDump(String path, HttpSession httpSession) {
Session session=sessionFactory.openSession();
session.beginTransaction();
File inputWorkbook = new File(path);
Workbook w;
try{
w = Workbook.getWorkbook(inputWorkbook);
Sheet sheet = w.getSheet(0);
for (int i = 1; i < sheet.getRows(); i++) {
for (int j = 0; j < sheet.getColumns(); j++) {
Cell cell = sheet.getCell(j, i);
if (j == 0) {
String name= cell.getContents().trim();
}
}
}
}catch(Exception ex){
ex.printStackTrace();
}finally{
session.close();sessionFactory.close();
}
return false;
}

控制台异常:

jxl.read.biff.BiffException: Unable to recognize OLE stream
at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:116)
at jxl.read.biff.File.<init>(File.java:127)
at jxl.Workbook.getWorkbook(Workbook.java:221)
at jxl.Workbook.getWorkbook(Workbook.java:198)
at com.slv.daoimpl.RegistrationDaoImpl.facultyDump(RegistrationDaoImpl.java:2845)
at com.slv.controller.SuperAdminController.facultyDumpExcel(SuperAdminController.java:327)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)

最佳答案

@Override
public boolean facultyDump(String path, HttpSession httpSession) {
Session session=sessionFactory.openSession();
session.beginTransaction();
File inputWorkbook = new File(path);
try{
FileInputStream fis = new FileInputStream(inputWorkbook);
org.apache.poi.ss.usermodel.Workbook workbook = WorkbookFactory.create(fis);
org.apache.poi.ss.usermodel.Sheet mySheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = mySheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
System.out.print(cell.getStringCellValue() + "\t");
break;
case Cell.CELL_TYPE_NUMERIC:
System.out.print(cell.getNumericCellValue()+ "\t") ;
break;
case Cell.CELL_TYPE_BOOLEAN:
System.out.print(cell.getBooleanCellValue() + "\t");
break;
default :
}
}
}
}catch(Exception ex){
ex.printStackTrace();
}finally{
session.close();sessionFactory.close();
}
return false;
}

关于java - 读取 .xls 和 .xlsx 格式的 excel 文件时出现 jxl.read.biff.BiffException 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37203820/

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