0 0

poi SXSSFWorkbook 多线程写文件异常0

1 利用poi写excel文件,文件格式为.xlsx

2 多线程并发,但多线程各自写各自的文件,并无同步问题。

3 出现的异常如下:
  
Caused by: org.apache.poi.openxml4j.exceptions.InvalidFormatException: Package should contain a content type part [M1.13]
at org.apache.poi.openxml4j.opc.ZipPackage.getPartsImpl(ZipPackage.java:178)
at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:662)
at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:269)
at org.apache.poi.util.PackageHelper.open(PackageHelper.java:39)
... 9 more

4 如果我将SXSSFWorkbook 这样写就不会有问题:
   SXSSFWorkbook wb = new SXSSFWorkbook(10000);
   synchronized (wb) {
       ......
    }

5 日志显示的出错行为wb.write这行。

    out = new FileOutputStream(new File(fileNameString), false);
    wb.write(out);

6 个人猜测应该还是跟已流方式写入的SXSSFWorkbook 对象有关系,但不清楚原因是什么?
   
    不知道大家有没有出现过类似的问题,求解,感谢之至!



2014年4月22日 17:37

1个答案 按时间排序 按投票排序

0 0

没用过poi写excel,都是用jxl的。根据异常信息来看,应该是你写入的部分数据存在类型问题。最好跟踪一下异常发生时,写入的数据内容。

2014年4月22日 23:15

相关推荐

    poi多线程大数据导出excel文件.zip

    本项目“poi多线程大数据导出excel文件”提供了一个解决方案,利用多线程来提高Excel的大数据导出效率。 Apache POI 3.1版本是较早的版本,而项目中使用了更新的4.1版本,这意味着它可能利用了更多优化和新特性。在...

    poi 自己写的excel sax方式导入大量数据

    如果数据量非常大,可以考虑使用多线程或分布式处理,将任务分解为更小的部分并并行处理,以提高整体导入速度。 通过以上步骤,你可以利用Apache POI的SAX方式高效地导入大量Excel数据。这种方式不仅节省内存,还...

    POI模版导出excel

    标题中的“POI模版导出excel”指的是使用Apache POI库来...实际应用中,开发者可能还会涉及多线程处理、数据映射、复杂公式计算等方面的知识。学习和掌握这些内容有助于提高工作效率,实现更复杂的Excel自动化任务。

    使用POI导出大数据量到EXCEL

    在Java开发中,Apache POI库是一个非常...实际开发中,可能还需要考虑如数据分页、数据过滤、多线程处理等高级功能,以进一步提高性能和用户体验。记得在使用完毕后释放资源,如关闭Workbook和输出流,防止内存泄漏。

    poi读取excel文件的完美jar包

    此外,如果需要处理大量并发请求,可以考虑使用多线程或异步处理来提高效率。同时,为了减少内存占用,可以使用`SXSSFWorkbook`(内存优化版本)来处理大数据量的.xlsx文件。 总结来说,Apache POI是一个强大的工具...

    java导出30万数据量的excel(采用生成多个excel,最后打包zip)

    3. **多线程处理**: 为了进一步优化性能,可以考虑使用多线程同时处理不同数据块。每个线程负责一个Excel文件的生成,这能充分利用多核处理器的计算能力,但需要注意线程安全问题,防止数据冲突。 4. **流式处理**:...

    java使用poi导出大量数据

    3. **异步处理**:为了提高用户体验,可以考虑使用多线程或异步处理来导出数据。这样,用户可以在导出过程中继续使用其他应用功能,而不是等待整个过程完成。 4. **样式与格式**:在导出时,可能需要设置单元格样式...

    poi操作excel导入导出,实际项目中应用并且优化

    - 对于复杂计算或格式化,可以使用多线程并行处理。 - 使用预定义的样式,减少内存中样式对象的数量。 - 使用try-with-resources语句,确保资源(如输入/输出流)得到正确关闭。 9. **性能提升** - 使用`...

    poi开发例子

    Apache POI是一个开源项目,主要用于读取和写入Microsoft Office格式的文件,如Word(.doc/.docx)、Excel(.xls/.xlsx)...同时,这也为你进一步学习其他相关技术,如Java I/O、XML解析和Java多线程打下了坚实的基础。

    excel的读写

    同时,对于多线程环境,需要考虑并发访问Excel文件的安全性,避免数据冲突。 总之,“excel的读写”是一个涵盖多种技术点的主题,包括但不限于编程语言的选择、库的使用、数据类型转换、文件处理和性能优化等。通过...

    Spring框架的Excel导入导出

    另外,可以使用多线程并行处理数据,提高导入导出效率。 7. **安全考虑** 文件上传和下载时,需要考虑安全性问题,防止恶意文件上传和数据泄露。使用Spring Security或其他认证和授权机制,限制只有授权用户才能...

    Java提取EXCEL图片重命名并改变像素大小

    在实际应用中,你可能还需要考虑性能优化,如并发处理多个Excel文件或使用多线程。此外,如果图片数量庞大,可以考虑使用流式处理来减少内存消耗。总之,理解并熟练运用这些知识点,你就能成功地实现“Java提取EXCEL...

    excel导入导出forJava

    这通常涉及到多线程处理,以提高效率。例如,可以将文件分割成多个部分,每个部分由一个线程处理。 4. **数据导出**:根据需求,可以从数据库或其他数据源生成Excel文件。这可能涉及到数据格式转换、样式设置,以及...

    Android 安卓读取Excel文件获取表格数据-IT计算机-毕业设计.zip

    - **异常处理**:处理可能出现的IO异常、文件不存在异常等,提供友好的错误提示。 - **性能优化**:对于大文件,可以考虑分批读取或使用流式处理,减少内存消耗。 这个毕业设计项目涵盖了Android开发中的多个重要...

    springboot-excel.zip

    另外,可以使用多线程并行处理数据,提高效率。 8. **安全注意事项** - 对上传的Excel文件进行安全检查,防止病毒或恶意代码。 - 对导出的Excel文件,限制数据量,避免过大导致用户下载困难。 通过以上步骤,你...

    java_Excel_import.rar_excel 导入_java 导入 excel

    - 单线程或多线程处理:对于大量数据,可以考虑使用多线程并行处理不同的Sheet或Row,提高导入速度。 4. **异常处理**: - 文件不存在或格式错误:确保正确处理`FileNotFoundException`和`InvalidFormatException...

    Excel导入导出工具类

    8. **线程安全**:在多线程环境中,工具类可能需要确保其方法是线程安全的,避免并发访问时的冲突。 9. **单元测试**:为了保证功能的正确性,ExcelUtil可能有对应的测试类,模拟各种输入情况来验证其功能。 掌握...

    大数据导出excel 和使用说明

    - 考虑使用多线程,将数据导出任务分解为多个子任务并行处理,提升效率。 总结,通过Java POI库,我们可以高效地处理大数据导出为Excel,再将其压缩成ZIP文件,提供给用户下载。在实际开发中,结合前端与后端的...

    Excel表格操作实用工具类

    在IT行业中,Excel表格操作是数据处理和分析的常见任务,尤其在企业级应用中,高效地导入、导出和处理Excel数据至关重要。...在实际项目中,可以根据需求进一步扩展,比如添加数据验证、多线程处理大文件等高级特性。

    java excel 上传 处理 模板

    - **并发处理**:对于批量操作,可以考虑多线程处理,提高处理速度。 综上所述,Java处理Excel文件上传和模板操作涉及到Web开发、文件读写、数据处理等多个方面,通过熟练掌握Apache POI库和相关的编程技巧,可以...

Global site tag (gtag.js) - Google Analytics