【问题标题】:xls file is corrupted after upgrading apache poi from version 4.0.1 to the latest versions ( version 4.1.2 and version 5.0.0)将 apache poi 从 4.0.1 版升级到最新版本(4.1.2 版和 5.0.0 版)后,xls 文件已损坏
【发布时间】:2021-07-17 16:39:43
【问题描述】:

以下代码适用于 apache poi 4.0.1 版,但在将 apache poi 升级到最新版本(4.1.2 版或 5.0.0 版)后,生成的 xls 文件已损坏,当我尝试打开它时,我无法打开它找到里面的任何数据。 (poi.jar升级后xls文件大小由4KO更新为0KO)

import java.io.FileOutputStream;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;

public abstract class ExcelExporter
{ 
    public static void exportPanel(String account, JTable table) {
        FileOutputStream excel = null;
        try {   
            Workbook wb = new HSSFWorkbook();
            Sheet sh = wb.createSheet("hello");
            Row row = sh.createRow(0);
            Cell cell = row.createCell(0);
            cell.setCellValue(1);
            excel = new FileOutputStream("WORKBOOK.xls");
            wb.write(excel);
            wb.close();
            excel.flush();
            excel.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }   
    }
}

你能建议吗? 谢谢,

enter image description here enter image description here

【问题讨论】:

  • 嗨,欢迎来到 StackOverflow!我对apache poi了解不多,但我认为你应该提供更多细节来帮助社区帮助你,比如你的执行日志,你如何使用给定的类等
  • 您好 Jissay,感谢您的反馈。我正在使用 API org.apache.poi 创建一个带有 java 代码的 excel 文档。我正在使用上面代码中描述的类 HSSFWorkbook 来创建 xls 文件。在将 apache poi.jar 升级到最新版本之前,相同的代码可以正常工作。
  • 我想知道为什么这么简单的案例会让我们通过,而您是自发布以来的第一个。因此,我想到了来自您的 swing 应用程序的多次调用或来自另一个代码部分的 Workbook.xls 上的文件锁定。
  • 您好猕猴桃,感谢您的反馈。当我将 poi.jar 降级到 4.0.1 时,相同的代码会生成正确的 xls 文件,但是当我只将 poi.jar 升级到最新版本 5.0.0 时,相同的代码会生成 0 KB xls 文件。
  • 不可重现。这个简单的代码适用于我使用apache poi 4.1.25.0.0 并产生一个可用的WORKBOOK.xls。当然不清楚String accountJTable table 是如何在这里参与的,以及你是如何调用public static void exportPanel(String account, JTable table) 的。所以,正如@kiwiwings 已经说过的那样,问题一定在这个简单的代码之外。

标签: java apache-poi xls excel-2016 hssfworkbook


【解决方案1】:

通过将 commons-math3.jar 添加到我的项目来解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-16
    • 2018-03-08
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-08
    • 1970-01-01
    相关资源
    最近更新 更多