Java 如何使用ApachePOI库读取xls和xlsx?
我有一个从excel读取的应用程序。问题是我只能读取xlsx文件。我看不懂xls文件。这是我的代码:Java 如何使用ApachePOI库读取xls和xlsx?,java,android,excel,apache,apache-poi,Java,Android,Excel,Apache,Apache Poi,我有一个从excel读取的应用程序。问题是我只能读取xlsx文件。我看不懂xls文件。这是我的代码: FileInputStream file = new FileInputStream(new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)+"/"+nomeExcel)); HSSFWorkbook workbook = new
FileInputStream file = new FileInputStream(new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)+"/"+nomeExcel));
HSSFWorkbook workbook = new HSSFWorkbook(file);
HSSFSheet sheet = workbook.getSheetAt(0);
int rowCtr = 34;
Row myRow = sheet.getRow(rowCtr++);
while (myRow != null) {
Cell nif = myRow.getCell(0);
Cell marcaexploracao = myRow.getCell(1);
Cell numerochip = myRow.getCell(2);
Cell marcaauricular = myRow.getCell(3);
Cell datanascimento = myRow.getCell(4);
bd.addAnimais(numerochip.toString().replace("\u00a0",""),marcaexploracao.toString().trim(),marcaauricular.toString(),datanascimento.toString(),nif.toString(),0,"","","","",0);
myRow = sheet.getRow(rowCtr++);
}
}catch (Exception e){e.printStackTrace(); }
Toast.makeText(getApplicationContext(),"Excel importado",Toast.LENGTH_SHORT).show();
}
});
您可以使用WorkbookFactory.create方法创建工作簿,如下所示:
InputStream inp = new FileInputStream(new FileInputStream("/path/to/file.xls"));
Workbook wb = WorkbookFactory.create(inp);
Sheet sheet = wb.getSheetAt(0);
Apache POI有单独的包来读取XLSX,而不是HSSFWorkbook使用XSSFWorkbook等。此链接可能有用-XSSF可以读取这两个文件?我可以在新的FIleIputStream中使用StringValue吗?什么意思?复制代码时的第一个错误是:无法解析新FileInputStream中的构造函数。之后,我尝试使用stringValueOf并解决了这个问题。但是它给了我一个org.apache.poi.poifs.filesystem.NotOLE2FileException:当我阅读excel xls时,它只对xlsx excel文件有效。我需要xls和xlsx:/如果您没有具有此路径的文件,或者该文件可能为空,则可能会出现此异常。你能在调试模式下检查它吗?