`
shijian0306
  • 浏览: 66660 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

POI 导出excel数据量大的时候的解决方案

poi 
阅读更多
POI 在导出大量数据到response中的时候报socket错误(其实文件已经导出来了,数据量在21000左右,4列),请问大家是怎么解决的。
当数据量小的时候没有问题!错误信息如下。

workBook.write(outputStream);
outputStream.flush();
outputStream.close();


ClientAbortException:  java.net.SocketException: Software caused connection abort: socket write error
2008-04-30 15:41:07,625 ERROR (org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manage].[default]:253) - Servlet.service() for servlet default threw exception
java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:747)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:432)
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:347)
at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:770)
at org.apache.coyote.http11.filters.IdentityOutputFilter.doWrite(IdentityOutputFilter.java:127)
at org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:580)
at org.apache.coyote.Response.doWrite(Response.java:560)
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:361)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:432)
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:314)
at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:293)
at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:98)
at com.winkee.keyword.util.KeywordDownloadExcel.downloadKeyWord(KeywordDownloadExcel.java:97)
at com.winkee.keyword.web.KeywordAction.list(KeywordAction.java:190)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
分享到:
评论
2 楼 水生梦尘 2012-12-19  
怎么没答案
1 楼 shijian0306 2008-04-30  
顶起。。。。。

相关推荐

    使用POI导出大数据量到EXCEL

    "使用POI导出大数据量到EXCEL"这个主题涉及到如何高效地利用POI处理大量数据并将其导出到Excel文件中。以下是对这个主题的详细讲解。 1. **Apache POI简介** Apache POI 是一个开源项目,它提供了Java API来创建、...

    POI的EXCEL导出,自动换行

    ### POI的EXCEL导出,自动换行 在日常工作中,经常需要处理大量的数据导入导出任务,...无论是简单的数据导出还是复杂的报表生成,POI都能够提供相应的解决方案。希望本文能够帮助大家更好地理解和使用Apache POI。

    Springboot+Poi实现Excel的导入导出

    4. **性能优化**:如果数据量较大,可以考虑分批读写,避免一次性加载大量数据导致内存溢出。同时,对于数据库操作,可以使用批量插入以提高效率。 5. **安全考虑**:在处理用户上传的Excel文件时,需要防止SQL注入...

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

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

    poi大量数据读取gc内存溢出解决方案

    poi读取大量数据会造成gc内存溢出的报错,由于垃圾回收机制无法将大量的对象及时的回收,而这些对象又会保存在内存中,会导致内存不够用的情况,这时候我们就需要使用新的方法,读取...此解决方案可支持千万数据的传输不报错

    java解决大批量数据导出Excel产生内存溢出的方案

    - 使用如JExcelApi、OpenCSV等其他第三方库,它们可能提供了更优化的数据导出方案,尤其是针对大数据量。 7. **优化Excel文件格式**: - 如果可能,可以考虑使用CSV格式代替Excel,因为CSV文件对内存的需求较低,...

    Java_批量导出大数据量Excel方法.zip

    在Java开发中,批量导出大数据量到...通过以上方法,开发者可以构建一个高效且健壮的Java批量导出大数据量到Excel的解决方案。具体实现细节可能在提供的excelproj和ExpXLS文件中有所体现,建议解压后仔细研究源代码。

    poi导出excel2007

    ### 使用Apache POI导出Excel 2007并避免内存溢出问题 #### 背景介绍 在处理大量数据时,使用Java导出Excel文件可能会遇到内存溢出的问题,尤其是在导出Excel 2007(.xlsx格式)时更为常见。这是因为传统的`...

    Java使用POI导出大数据量Excel的方法

    在Java开发中,导出大数据量的Excel文件可能会面临内存溢出的问题,特别是在使用Apache POI库时。这是因为默认情况下,POI会将整个Excel工作簿存储在内存中,当数据量过大时,内存消耗非常显著,可能导致系统崩溃。...

    java多线程导出excel(千万级别)优化

    Java多线程导出Excel是处理大数据量时的一种高效策略,尤其在面对千万级别的数据时。传统的Apache POI库在处理大规模数据时可能会遇到栈溢出(StackOverflowError)和内存溢出(OutOfMemoryError)等问题,因为这些...

    用Poi导出Excel表格数据

    标题中的“用Poi导出Excel表格数据”指的是使用Apache POI库来创建和操作Microsoft Excel文件的过程。Apache POI是Java领域一个广泛使用的库,它允许开发者读取、写入以及修改MS Office格式的文件,包括Excel。下面...

    SpringBootMybatis+poi+Thymeleaf实现excel文件数据导入到数据库以及从数据库将数据导出成excel.zip

    在Spring Boot应用中,Thymeleaf通常用于生成动态的Web页面,提供前后端分离的解决方案。 5. **Excel数据导入到数据库**: 使用Apache POI,我们可以解析Excel文件,获取工作表和单元格的数据。然后,通过MyBatis的...

    easypoi的使用demo,包含Excel模板导出,html导出Excel,Excel导出pdf等

    Easy POI设计了流式写入和读取模式,非常适合处理大数据量的情况。流式处理不占用大量内存,因此在高并发环境下,它能有效地避免内存溢出。`EasyExcel.write(fileName).sheet().doWrite(data)`采用的就是这种模式,...

    java excel大数据量导出demo,可支持模板导出

    这个"java excel大数据量导出demo"提供了一个高效、灵活的解决方案,它支持模板导出,分页查询,以及处理大数据量的能力。在这个项目中,开发者采用了Apache POI库的SXSSFWorkbook子类,这是一个专门为处理大量数据...

    SpringBoot +Mybatis +POI导入、导出Excel文件

    在现代企业级应用开发中,数据的导入与导出功能是非常常见且重要的。SpringBoot结合Mybatis框架提供了高效...通过理解SpringBoot的自动配置、Mybatis的SQL映射以及POI的Excel操作,我们可以轻松地构建类似的解决方案。

    poi导入导出Excel通用工具类 兼容xls,xlsx

    总结,"poi导入导出Excel通用工具类 兼容xls,xlsx"这个工具实现了利用Apache POI库处理Excel文件的功能,涵盖了从旧版的.xls到新版的.xlsx格式,提供了方便的导入和导出接口,使得在Java开发中处理Excel数据变得...

    Easy-POI是一款Excel导入导出解决方案组成的轻量级开源组件

    - **高效性**:Easy-POI优化了Excel读写过程,减少了内存消耗,提高了处理速度,尤其适合处理大数据量的Excel文件。 - **易用性**:提供了简单直观的API,使得开发者可以快速上手,减少代码编写量,提高开发效率。...

    POI导入excel大数据处理,支持excel2003,2007

    在Java开发中,当需要处理大量的Excel数据时,POI库提供了高效且灵活的解决方案。标题提到的“POI导入excel大数据处理”是指利用Apache POI进行大量Excel数据的导入操作,同时它兼容Excel 2003(.xls格式)和2007...

    excelpoi导入导出功能

    5. **性能优化**:对于大数据量的Excel,使用SXSSF流式API可以避免一次性加载所有数据导致的内存问题。 6. **异常处理**:在导入导出过程中可能会遇到各种错误,如文件格式不正确、数据类型不匹配等,需要有完善的...

Global site tag (gtag.js) - Google Analytics