gpt4 book ai didi

java - 无法将 HSSFWorkbook 写入 ByteArray,然后将其读取到 HSSFWorkbook

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

5i 需要将 HSSFWorkbook(Apache 的 POI)转换为 ByteArray,然后将 ByteArray 转换回 HSSFWorkbook。以下测试用例说明了我的问题:

   @Test
public void testXLSExportImport(){
try {
InputStream is = new FileInputStream(FILEPATH);
HSSFWorkbook wb = new HSSFWorkbook(is);
byte[] exported = wb.getBytes();
HSSFWorkbook wb2 = new HSSFWorkbook(new ByteArrayInputStream(exported));
//in the line above the exception is thrown
} catch (Exception e) {
assertTrue(false);
}
}

测试用例失败并出现异常:java.io.IOException:无效的 header 签名;读取 0x0005060000100809,预期为 0xE11AB1A1E011CFD0

(我正在使用 Apache POI 3.5-beta3)

我希望有人能帮助我...我怎样才能让它工作?!

最佳答案

您没有正确编写作业簿!您需要使用 write(Outputstream)打电话。

various examples on the website所示,您的代码应该是:

     InputStream is = new FileInputStream(FILEPATH);
HSSFWorkbook wb = new HSSFWorkbook(is);
ByteArrayOutputStream out = new ByteArrayOutputStream();
wb.write(out);
HSSFWorkbook wb2 = new HSSFWorkbook(new ByteArrayInputStream(out.toByteArray()));

此外,如果您有直接使用的文件,请不要从 FileInputStream 打开工作簿。从文件打开 uses less memory than from a Stream .

关于java - 无法将 HSSFWorkbook 写入 ByteArray,然后将其读取到 HSSFWorkbook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18321201/

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