Excel文件上传,解析,下载(三 创建文件和文件下载)
2016-03-03 12:44
459 查看
实现文件下载的功能
1.Workbook workBookSpare = spareFlowService.getExcelFile(context, header);获得文件
2.out = response.getOutputStream();获得输出流
3.workBookSpare.write(out);将文件写出到输出流当中
4.设置请求的头部信息
response.setCharacterEncoding("utf-8");
response.setContentType("multipart/form-data");
response.setHeader("Content-Disposition", "attachment;fileName=" + fileName);
4.1设置编码格式
4.2设置成文件传输模式
4.3设置下载的附件
5.最后别忘记关闭流
创建文件,里面使用的是面向接口的编程方式。详情,关注注释即可。
1.Workbook workBookSpare = spareFlowService.getExcelFile(context, header);获得文件
2.out = response.getOutputStream();获得输出流
3.workBookSpare.write(out);将文件写出到输出流当中
4.设置请求的头部信息
response.setCharacterEncoding("utf-8");
response.setContentType("multipart/form-data");
response.setHeader("Content-Disposition", "attachment;fileName=" + fileName);
4.1设置编码格式
4.2设置成文件传输模式
4.3设置下载的附件
5.最后别忘记关闭流
@RequestMapping(params = "method=fileExport") public void fileExport(@RequestParam("header") String header, @RequestParam("context") String context, HttpServletResponse response) { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); String str = sdf.format(date); String fileName = str+".xls"; response.setCharacterEncoding("utf-8"); response.setContentType("multipart/form-data"); response.setHeader("Content-Disposition", "attachment;fileName=" + fileName); Workbook workBookSpare = spareFlowService.getExcelFile(context, header); OutputStream out = null; try { out = response.getOutputStream(); workBookSpare.write(out); out.flush(); out.close(); } catch (FileNotFoundException e) { logger.debug(e.getMessage()); } catch (IOException e) { logger.debug(e.getMessage()); } }
创建文件,里面使用的是面向接口的编程方式。详情,关注注释即可。
public Workbook createExcelFile(List<ResProperties> resProperties, List<List<String>> content) { // 创建显示的头部 Workbook work = new HSSFWorkbook(); Sheet sheet = work.createSheet(); //第一行 表示的是列头 createHeader(resProperties, sheet); //第二行 对应的列头在数据库当中的ID createHeaderIdHider(resProperties, sheet); createContent(content, sheet); return work; // 遍历显示的内容 }
private Row createHeader(List<ResProperties> resProperties,Sheet sheet){ Row rowHeaderExcel = sheet.createRow(SpareTransaction.HEADER_EXCEL); for(int i=0;i<resProperties.size();i++){ //前面空出一列 用来表示ID Cell cellHeader = rowHeaderExcel.createCell(i+1); cellHeader.setCellValue(resProperties.get(i).getFieldDescription()); } return rowHeaderExcel; }
private Row createHeaderIdHider(List<ResProperties> resProperties,Sheet sheet){ Row rowHeaderExcel = sheet.createRow(SpareTransaction.HIDEER_ID_EXCEL); //隐藏 rowHeaderExcel.setZeroHeight(true); for(int i=0;i<resProperties.size();i++){ //前面空出一列 用来表示ID Cell cellHeader = rowHeaderExcel.createCell(i+1); cellHeader.setCellValue(resProperties.get(i).getPropertyId()); } return rowHeaderExcel; }
private void createContent(List<List<String>> content, Sheet sheet) { for (int i = 0; i < content.size(); i++) { List<String> row = content.get(i); Row rowExcel = sheet .createRow(i + SpareTransaction.HIDEER_ID_EXCEL+1); for (int k = 0; k < row.size(); k++) { Cell cell = rowExcel.createCell(k); cell.setCellValue(row.get(k)); } } }
相关文章推荐
- html5前端图片压缩
- Quartz指南
- 高等数学:第十二章 微分方程(1)微分方程的概念,可分离变量的微分方程,齐次方程
- Linux install iperf3 record
- u盘在我的电脑中不显示
- TuShare(1):Python股票抓取工具TuShare
- hadoop之mapreduse 在Eclipse下的调试环境篇
- 阿里云
- POJ 1088(记忆化搜索)
- 机会网络路由学习之Controlled Routing
- Mac下MySQL卸载方法
- C++虚函数及虚函数表解析
- 图像因其本身有错无法显示 解决方法
- iOS udp socket通信-远程唤醒windows电脑主机
- CDR和DMG以及PKG的格式的区别
- iOS7之后经过滑动返回导航栏隐藏和显示带来的坑(转载)
- 1-4-2 Windows数据类型与重要数据结构
- 高等数学:第十一章 无穷级数(3)正弦级数、余弦级数、周期为2L的周期函数的傅里叶级数
- Android中利用ContentResolver获取本地音乐和相片
- [CAAnimation核心动画练习二]关键帧动画,实现抖动