使用Apache POI从java中读取和写入xls和xlsx excel文件

我正在编写一个程序,需要从excel文件中读取和写入,而不管格式(xls或xlsx)。

我知道Apache POI,但它似乎有不同的类来处理xls文件(HSSF)和xlsx(XSSF)文件。

任何人都知道如何实现我在这里尝试做的事情。 (也欢迎使用POI以外的API的想法)。

这很简单,只需使用常见的SpreadSheet接口即可

您的代码看起来像:

Workbook wb = WorkbookFactory.create(new File("myFile.xls")); // Or .xlsx Sheet s = wb.getSheet(0); Row r1 = s.getRow(0); r1.createCell(4).setCellValue(4.5); r1.createCell(5).setCellValue("Hello"); FileOutputStream out = new FileOutputStream("newFile.xls"); // Or .xlsx wb.write(out); out.close(); 

只要使用通用接口,就可以读取,编写,编辑现有文件(.xls和.xlsx),使用完全相同的代码

为什么不从扩展中检测文件类型并使用适当的Apache POI类进行处理? 我怀疑是否有适合您情况的绝对通用的开箱即用解决方案。