版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JXL生成的excel文件+JAVA文件下载功能一个需求,用户点击下载按钮,将指定的excel的报表模板使用数据库数据渲染,然后下载到用户本地;通常而言,对于一个文件的下载,可以有以下几种方式:window.location.卜乃作文件名称URL全路径;window.open(文件名称URL全路径);这种方式不友好的地方在于服务器的目录结构直接暴露出去,而且在IE下很有可能会报错权限问题等,甚至firefox中会触发那个年代久远而依然没有解决的bugo所以这里不推荐。对于jxl生成excel文件,有两种方式,一种是生成文件保存到磁盘,另一种是直接保存到输出流中。对于上述需求,如果生成的文件保存到磁盘,随着系统运行,磁盘会主键被占用,需要手动去删除。由于文件都较小,所以这里采用第二种方式,直接在内存中生成文件,然后提供给用户下载的时候response回去。看一个例子:用于响应下载请求的controller/***下载个人订单@paramrequest@paramresponse@parammodelMap*/@RequestNlapping(value=,,/download.do11,method=RequestMethod.GET)publicvoidprocessDownload(HttpServletRequestrequestsHttpServletResponseresponse,ModelMapmodelNIap){longuserid=getllserld(request);Stringids=request.getParameter("ids");try{Long[]idarray=getIdsFromStringArray(ids.split(“)"));if(null==idarray||0==idarray.length){return;}//直接往response的输出流中写excelOutputstreamoutputstream=response・getOutputStream();//获取文件名称StringfileName=getUserFileName(userid);//下载格式设置response.setContentType(,,APPLICATION/OCTET-STREA|v|,,);response.setHeader(,Content-Disposition","attachment;filename=/""+fileName+"//读取数据渲染模板并写入outputstream中List<PhAdvertiseOrderDO>advertiseOrderList=phAdvertiseOrderService.getAdvertiseOrderByIds(idarray?userid);outputstream=excelFileService.generalExcelFileInOutputStream(outputStream-,advertiseOrderList);outputstream.close();}catch(Exceptione){logger.error("下载报表发生异常!”,e);}}</pre>其中调用到的文件服务/*(non-Javadoc)*@seeease.photography.service.ExcelFileService#generalExcelFilelnOutputStream(java.lang.Stringyjava.io.Outputstream,java.util.List)*/publicOutputstreamgeneralExcelFilelnOutputStream(OutputstreamoutputStream^List<PhAdvertiseOrderDO>advertiseOrderList)throwsBiffException,工OException,WriteException{//检查参数是否合法checkParam(tempalteFile?"noFile",advertiseOrderList);//获取模板Workbooktemplatebook=Workbook.getlAlorkbook(newFile(tempalteFile));WritableWorkbookwriteableWorkbook=Workbook.createWorkbook(outputStream.,templatebook);//读取数据写入模板readDataAndWriteTemplate(templatebook^writeableWorkbook^advertiseOrderList);returnoutputstream;}</pre>其中的重点就在于WritableWorkbookwriteableWorkbook=Workbook.createWorkbook(outputStream.,templatebook);这句话指定了写入的数据到输出流中。页面调用很简单functiongetOrderFileNoDirect(){varids="for(vari=0;i<30;i++){if($(,,choose,,+i)!=null&&$("choose"+i).check
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋买卖合同简易版范本格式
- 肥料运输合同2024年
- 房产赠与合同公证的步骤
- 2024汽车买卖合同写
- 建筑企业分公司协议-合同范本
- 2024【承包厂食堂合同范本】关于医院食堂承包的合同范本
- 权威汽车买卖合同样式集
- 2024年电商托管代运营协议
- 2024音像制品经销合同范本
- 施工机械安全租赁协议
- 装饰装修工程售后服务具体措施
- 乙炔发生器、电石库安全检查表
- 克拉申监控理论述评
- ICH技术指导原则概述
- (完整版)一年级家长会PPT模板
- 《中华商业文化》第七章
- 15D503利用建筑物金属体做防雷及接地装置安装图集
- 消防训练工作研讨材料
- 第六章-机车转向架课件
- 医患双方权利和义务课件
- 高三年级班级成绩分析报告
评论
0/150
提交评论