我正在编写一个需要从excel文件读取和写入的程序,无论格式如何(xls或xlsx)。
我知道Apache POI,但它似乎有不同的类来处理xls文件(HSSF)和xlsx(XSSF)文件。
任何人都知道如何实现我在这里尝试做的事情。 (也欢迎使用POI以外的API的想法。)
答案 0 :(得分:23)
这很简单,只需使用常见的SpreadSheet interfaces
即可您的代码看起来像:
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),使用完全相同的代码
答案 1 :(得分:2)
为什么不从扩展中检测文件类型并使用适当的Apache POI类进行处理?我怀疑是否有适合您情况的绝对通用的开箱即用解决方案。