1

我想使用浏览器将超过 200000 行和 60 列从数据库导出到客户端计算机。我正在使用 Servlet 和 POI 3 .8 版本的 jar 和以下代码。

ServletOutputStream servletOutputStreamObj = response.getOutputStream();
HSSFWorkbook workBook =  new HSSFWorkbook ();
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=\"" + strFileName + ".xls\"");
workBook.write(servletOutputStreamObj);

此代码最多可运行 65535 行。如何使其获得更多记录。(xls/xlsx 两种格式都可以)。

谁能帮我?

4

2 回答 2

2

您正在使用一个HSSFWorkbook对象,该对象创建一个限制为 65,535 行的 Excel xls文件。

相反,您应该使用创建 Excel xlsx文件的XSSFWorkbook ,该文件又支持 1,048,576 行。在这种情况下,您还应该更改 ContentType 和文件扩展名。

如果您使用 XSSFWorkbook 内存不足,请尝试SXSSFWorkbook

这是来自 Apache POI 网站的 3 个类的背景。

于 2012-09-18T10:03:01.330 回答
1

可能您可以根据需要查看此示例。此示例代码尝试创建多达 100000 条记录的 excel 文档。

演示可用于生成大型工作簿并避免 OutOfMemory 异常的解决方法

于 2012-09-18T05:27:26.167 回答