Чтение и запись из xls и xlsx файла excel в java

Я пишу программу, которая должна читать и писать из файлов excel, независимо от формата (xls или xlsx).

Я знаю POI Apache, но, похоже, у него разные классы для обработки файлов xls file (HSSF) и xlsx (XSSF).

Кто-нибудь знает, как я могу достичь того, что я пытаюсь сделать здесь. (Идеи использования API, отличного от POI, также приветствуются).

Ответ 1

Это очень просто, просто используйте общие интерфейсы 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, с точно таким же кодом, если вы используете общие интерфейсы

Ответ 2

Почему бы не определить тип файла из расширения и использовать соответствующий класс POI Apache для обработки? Я сомневаюсь, что у вас есть абсолютно универсальное готовое решение для вашей ситуации.