博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POI导出数据以Excel的方式录入,下载
阅读量:5926 次
发布时间:2019-06-19

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

 简单描述:把数据导出到excel文件中。过程:获取要导出的数据列表(list),创建excel文件,数据放入。

代码:

//html代码  
  //js代码

 

//后台java代码 @RequestMapping("fileExport") @ResponseBody public void exportFile(String rightsJson,HttpServletResponse response) throws IOException{
try {
List
list=(List
)JSONArray.toList(JSONArray.fromObject(rightsJson), VraxxTemporary.class); if(list.size()==0){
response.sendRedirect("errornull.action"); }else{
// 在内存中创建一个Excel文件,通过输出流写到客户端提供下载 // 内存中保留 10000 条数据,以免内存溢出,其余写入 硬盘 SXSSFWorkbook workbook = new SXSSFWorkbook(10000); // 创建一个sheet页 SXSSFSheet sheet = (SXSSFSheet) workbook.createSheet("XX模板"); // 分别设置Excel列的宽度 sheet.setColumnWidth(0, 150 * 40); sheet.setColumnWidth(1, 100 * 40); sheet.setColumnWidth(2, 100 * 40); sheet.setColumnWidth(3, 100 * 40); // 创建标题 SXSSFRow headRow = (SXSSFRow) sheet.createRow(0); headRow.createCell(0).setCellValue("序号"); headRow.createCell(1).setCellValue("编码"); headRow.createCell(2).setCellValue("AA名称"); headRow.createCell(3).setCellValue("AA编码"); headRow.createCell(4).setCellValue("BB名称"); headRow.createCell(5).setCellValue("BB编码"); headRow.createCell(6).setCellValue("CC名称"); headRow.createCell(7).setCellValue("CC编码"); headRow.createCell(8).setCellValue("姓名"); headRow.createCell(9).setCellValue("手机号"); headRow.createCell(10).setCellValue("证件类型"); headRow.createCell(11).setCellValue("证件号"); for (VraxxTemporary temporary: list) {
// 创建行 SXSSFRow dataRow = (SXSSFRow) sheet.createRow(sheet.getLastRowNum() + 1); dataRow.createCell(0).setCellValue(temporary.getTemp_id()); dataRow.createCell(1).setCellValue(temporary.getCont_number()); dataRow.createCell(2).setCellValue(temporary.getAA_name()); dataRow.createCell(3).setCellValue(temporary.getAA_code()); dataRow.createCell(4).setCellValue(temporary.getBB_name()); dataRow.createCell(5).setCellValue(temporary.getBB_code()); dataRow.createCell(6).setCellValue(temporary.getCC_name()); dataRow.createCell(7).setCellValue(temporary.getCC_code()); dataRow.createCell(8).setCellValue(temporary.getUserName()); dataRow.createCell(9).setCellValue(temporary.getUser_phone()); dataRow.createCell(10).setCellValue(temporary.getIdtype()); dataRow.createCell(11).setCellValue(temporary.getIdcode()); } // 设置Excel文件名,并以中文进行编码 Date day=new Date(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String name = "XX数据"+ df.format(day); String codedFileName = new String(name.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(); } } 

 说明:encodeURIComponent()方法是对uri中的某一部分特殊字符进行编码,是浏览器能够接受和理解  (前台js传递的是json字符串)

网上找excel导出,很多都不太好用,可能是自己太菜,没调试好,也可能本身就有问题,在这里,这个是我网上扒来的然后经过修改之后的,记录一下。

 

转载于:https://www.cnblogs.com/xuchao0506/p/10002024.html

你可能感兴趣的文章
mysql定时备份脚本
查看>>
视频格式转换器如何截取视频片段
查看>>
获得所有视图
查看>>
swift 单例的使用
查看>>
参数为集合时,mybatis3 分页查询问题及其对应的解决方法
查看>>
Pig数据模型及Order,Limit关系操作
查看>>
golang utils
查看>>
Spring方法拦截器MethodInterceptor
查看>>
CSCOPE 安装和使用方法总结
查看>>
BarTender制作圆形标签的方法
查看>>
caravel之架构与源码浅析
查看>>
制作framework库文件的详细步骤---iOS9,Xcode7.2
查看>>
本机自定义域名映射IP
查看>>
Linux Python详细安装、升级指南
查看>>
[转]Python version 2.7 required, which was not found in the registry
查看>>
我的友情链接
查看>>
S - Spring Security 相关资料索引贴
查看>>
Magento 2报告:终极指南
查看>>
CentOS5 配置DNS转发
查看>>
Java:遍历List
查看>>