gpt4 book ai didi

java - 如何使用poi通过java取消合并单元格并获取xssf格式的数据

转载 作者:行者123 更新时间:2023-11-30 12:05:29 28 4
gpt4 key购买 nike

我有一个现有的 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();
}
}

最佳答案

我认为问题在于,您的更改仅在内存中完成,并未保存。您需要保存修改后的工作表。为了演示我从另一个问题中借用了代码 Save Excel document 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(); 吞下异常}。有很多文章解释了为什么这是一种不好的做法。

关于java - 如何使用poi通过java取消合并单元格并获取xssf格式的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56251554/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com