Как вытащить ячейку через Java с помощью poi и получить данные для формата xssf - PullRequest
2 голосов
/ 22 мая 2019

У меня есть лист Excel, и я пытаюсь прочитать его и добавить в свой список. Но есть объединенные ячейки, поэтому я хотел бы удалить их перед сохранением в своем списке. Я пробовал метод removeMergedRegion (), но он не работал. когда я открыл лист Excel после процесса, я хотел, чтобы ячейки были объединены. И, если возможно, после удаления пустая ячейка должна быть удалена.

 public void newone(){
        //calling my existing excel file
        File file = new File("C:\\Users\\daisy\\Downloads\\What.xlsx");         
        FileInputStream fis;
        try {
            fis = new FileInputStream(file);
            Workbook workbook = new XSSFWorkbook(fis); 
            // Iterate through all merged region in the sheet
            Sheet sheet = workbook.getSheet("Sheet1");      
                for(int i=0; i < sheet.getNumMergedRegions(); i++)
                {
                    // Delete the region
                    sheet.removeMergedRegion(i);
                    System.out.println("Unmerged successfully");
                }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }          
    }

1 Ответ

0 голосов
/ 22 мая 2019

Я думаю, проблема в том, что ваше изменение было сделано только в памяти и не было сохранено. Вам необходимо сохранить измененный лист. Для демонстрации я позаимствовал код из другого вопроса Сохранить документ Excel Apache POI

try {
    FileOutputStream out = new FileOutputStream("C:\\Users\\...\\New.xlsx");
    workbook.write(out);
    out.close();
} catch (FileNotFoundException ex) {
    // handle the exception here
}

Не по теме - я настоятельно рекомендую вам не глотать исключения с catch(e) { e.printStackTrace(); }. Есть много статей, которые объясняют, почему это плохая практика.

...