SXSSFWorkbook导出大数据量Excel文件
来源:互联网 发布:空气净化器有用吗 知乎 编辑:程序博客网 时间:2024/05/19 19:55
最近在导出大数据量进excel文件时,之前用的XSSFWorkbook在写文件的时候,项目一直报内存溢出。在查询POI后发现新出的SXSSFWorkbook正是为处理大数据量而生,在苦苦找了两天SXSSFWorkbook导出带模板的excel未果后,决定采用excel表头自己打印的方法来形成表头字段。
String[] assetHeadTemp = {"批次","供应商代码","商品名称"};//表头名String[] assetNameTemp = {"charg","zgysdm","zspmc"};//表头字段Workbook wb = new SXSSFWorkbook(100);// 内存中保留 1000 条数据,以免内存溢出,其余写入 硬盘 Sheet sheet = wb.createSheet("Sheet1");Row row;Cell cell;// 输出表头row = sheet.createRow(0);for (int i = 0; i < assetHeadTemp.length; i++) {cell = row.createCell(i);cell.setCellValue(assetHeadTemp[i]);}int rowIndex = 1;// 输出表内数据for (Map<String, Object> map : dataList) {row = sheet.createRow(rowIndex++);int index = 0;for (int i = 0; i < assetNameTemp.length; i++) {cell = row.createCell(index++);cell.setCellValue(map.get(assetNameTemp[i]) != null ? map.get(assetNameTemp[i]).toString() : "");}}FileOutputStream out = new FileOutputStream("/temp/sxssf.xlsx");//文件保存地址wb.write(out);// 导出excel文件if (out != null) {try {out.close();} catch (IOException e) {}}if (wb != null) {wb.close();}上述方法适合测试下载文件到本地的绝对路径,如果部署到服务器上,想要点击下载后在页面就能显示如图提示框,则需要在controller层获取下载地址。
方法是在service层将数据导成excel文件,然后用SFTP将文件上传到服务器端(上传、下载方法自行百度),最后在controller层从服务器下载该文件。
response.setContentType("multipart/form-data");String fileName = "报表";OutputStream out = null;try {response.addHeader("Content-Disposition", "attachment;filename="+new String(fileName.getBytes("UTF-8"),"iso8859-1")+".xlsx");// 用response得到的下载地址,会下载到电脑的“下载”文件夹并提示out = new BufferedOutputStream(response.getOutputStream());// 用SFTP下载上传的excel文件,代码省略out.flush();} catch (Exception e) {e.printStackTrace();logger.error("导出失败");} finally {if (out != null) {try {out.close();} catch (IOException e) {}}}
阅读全文
1 0
- SXSSFWorkbook导出大数据量Excel文件
- poi excel大数据导出-SXSSFWorkbook
- 大数据量导出Excel
- .大数据量导出Excel的方案 java 大excel文件
- 大数据量导出Excel的方案 java 大excel文件
- Java SXSSFWorkbook 导出 excel
- 利用SXSSFWorkbook导出excel
- 大数据量导出Excel数据
- 大数据量导出EXCEL解决方案
- JAVA导出大数据量Excel文件的解决方案
- 分sheet导出excel 大数据量导出
- EXCEL大数据量导出的解决方案
- 大数据量导出Excel的方案
- 大数据量导出Excel ---待测试
- 大数据量导出Excel的方案
- 大数据量导出Excel的方案
- 批量导出大数据量到EXCEL
- 大数据量时,Gridview无法导出Excel
- Android INSTALL安装错误收集
- codeforces 732B Cormen — The Best Friend Of a Man
- 安装pip以及pygame
- 浅谈解决浏览器不执行javascript的问题(sf.gg也发表了一份)
- Linux学习笔记(2)_用户,用户组,文件权限
- SXSSFWorkbook导出大数据量Excel文件
- 数理逻辑2 -- 量化理论5
- HDU 3790 简单最短路径问题(dijkstra+双重权值)
- Chapter03 国际化(二) 数字格式
- Android内存解析<二>
- android 编译错误 Error:(1, 0) Plugin with id 'com.android.application' not found. 解决
- 如何入门 Python 爬虫?
- VLC 集成
- 机器学习(十六)