gpt4 book ai didi

java - 使用 JExcel API 从 Excel 文件中删除行

转载 作者:行者123 更新时间:2023-12-02 07:55:07 25 4
gpt4 key购买 nike

我正在尝试从 Excel 文件中删除重复的行。我有以下代码行。运行代码后,它会创建modified_excel.xls。但是,打开此文件时出现错误“不支持的文件格式”

Workbook sourceDocument = Workbook.getWorkbook(new File("C:\\source.xls"));
WritableWorkbook writableTempSource = Workbook.createWorkbook(new File("C:\\excel\\modified_excel.xls"), sourceDocument);
WritableSheet sourceSheet = writableTempSource.getSheet(0);
String previousContent = "";
for (int i = 7; i < sourceSheet.getRows(); i++) {
String currentContent = sourceSheet.getCell(0, i).getContents();
if(!currentContent.equals(previousContent)){
sourceSheet.removeRow(i);
}
previousContent = currentContent;
}
writableTempSource.close();
sourceDocument.close();

最佳答案

我认为有两件事可以帮助解决这种情况

1)

writableTempSource.write();

这应该在关闭writableTempSource之前发生。如果您要注释掉 for block ,您会看到仍然有一个由“不受支持的格式”创建的文件。这一行将解决这个问题。

2)

我确实相信您可能对 for 循环中的 i 变量有疑问。考虑一下这一点。您在每次迭代时检查 sourceSheet.getRows()。但是,如果行被删除,则每次删除时该值都会发生变化。结果是您可能会跳过不需要的行。 Java 自然地通过 ConcurrentModificationException 在 for 循环中提供此功能,但是在 API-Land 的神奇王国中,您似乎无法避免执行此类操作。

关于java - 使用 JExcel API 从 Excel 文件中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9751959/

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