使用POI导出到XLS

时间:2012-09-18 05:18:05

标签: java apache-poi xls

我想使用浏览器从数据库向客户端计算机导出超过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两种格式都没问题。)

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

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

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

如果您使用XSSFWorkbook耗尽内存,请尝试SXSSFWorkbook

以下是来自Apache POI网站的3个类的background

答案 1 :(得分:0)

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

Demonstrates a workaround you can use to generate large workbooks and avoid OutOfMemory exception