我想使用浏览器从数据库向客户端计算机导出超过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两种格式都没问题。)
任何人都可以帮助我吗?
答案 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