博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java workbook 保存_Java POI导出Excel并使用输出流下载文件弹出打开保存框
阅读量:4579 次
发布时间:2019-06-08

本文共 1857 字,大约阅读时间需要 6 分钟。

/**

* 导出Excel

* @author Saffi

*/

@RequestMapping("exportExcel.action")

public void exportExcel(HttpServletResponse response) throws IOException {

try {

// 查询并赋给List集合

List oddList = entityService.listExport();

// 在内存中创建一个Excel文件,通过输出流写到客户端提供下载

// 内存中保留 10000 条数据,以免内存溢出,其余写入 硬盘

SXSSFWorkbook workbook = new SXSSFWorkbook(10000);

// 创建一个sheet页

SXSSFSheet sheet = (SXSSFSheet) workbook.createSheet("这是sheet名");

// 分别设置Excel列的宽度

sheet.setColumnWidth(0, 100 * 40);

sheet.setColumnWidth(1, 100 * 50);

sheet.setColumnWidth(2, 100 * 50);

// 创建标题

SXSSFRow headRow = (SXSSFRow) sheet.createRow(0);

headRow.createCell(0).setCellValue("编号");

headRow.createCell(1).setCellValue("时间");

headRow.createCell(2).setCellValue("单号");

// 遍历oddList集合

for (OddNunber odd : oddList) {

// 创建行

SXSSFRow dataRow = (SXSSFRow) sheet.createRow(sheet.getLastRowNum() + 1);

// 创建下标为0的Cell,并将其值设为查询结果中的编号

dataRow.createCell(0).setCellValue(odd.getOnid());

// 创建下标为1的Cell,并将其值设为查询结果中的日期

dataRow.createCell(1).setCellValue(odd.getOrecorddate());

// 创建下标为2的Cell,并将其值设为查询结果中的单号

dataRow.createCell(2).setCellValue(odd.getCustomernumber());

}

// 设置生成的Excel的文件名,并以中文进行编码

String codedFileName = new String("Excel名".getBytes("gbk"), "iso-8859-1");

response.setHeader("Content-Disposition", "attachment;filename=" + codedFileName + ".xlsx");

// 响应类型,编码

response.setContentType("application/octet-stream;charset=UTF-8");

// 形成输出流

OutputStream osOut = response.getOutputStream();

// 将指定的字节写入此输出流

workbook.write(osOut);

// 刷新此输出流并强制将所有缓冲的输出字节被写出

osOut.flush();

// 关闭流

osOut.close();

/*

* dispose of temporary files backing this workbook on disk 处理在磁盘上备份此工作簿的临时文件

* SXSSF分配临时文件,您必须始终清除显式,通过调用dispose方法

*/

workbook.dispose();

} catch (Exception e) {

e.printStackTrace();

response.sendRedirect("error.action");

log.error("系统错误", e.fillInStackTrace());

}

}

转载自:https://www.cnblogs.com/shoose/p/7744443.html

你可能感兴趣的文章
python数据分析入门学习笔记
查看>>
Flask-session
查看>>
HDU 2181 哈密顿绕行世界问题(经典DFS+回溯)
查看>>
CF 787D Legacy(线段树思想构图+最短路)
查看>>
【BZOJ2002】 [Hnoi2010]Bounce 弹飞绵羊 分块/LCT
查看>>
启用aspnet
查看>>
深度挖掘Power BI性能分析信息
查看>>
一些问题与解决
查看>>
input输入框file类型第二次不触发onchange事件的解决办法,简单有效
查看>>
搜索样式键盘的Return按钮是否可点击
查看>>
scrapy抓取中国新闻网新闻
查看>>
吴裕雄--天生自然 PHP开发学习:面向对象
查看>>
吴裕雄 python 神经网络——TensorFlow 输入数据处理框架
查看>>
[ckeditor系列]CKEditor 3.6 入门
查看>>
linux基础命令
查看>>
Socket网络编程--简单Web服务器(4)
查看>>
C++中函数模板的深入理解
查看>>
leecode第二十二题(括号生成)
查看>>
增量式PID的matlab实现
查看>>
mybatis generatorConfig.xml生成配置文件及三种运行方式
查看>>