Чтение и запись из 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 для обработки? Я сомневаюсь, что у вас есть абсолютно универсальное готовое решение для вашей ситуации.