版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 搬家服务设备租赁协议模板
- 2025房屋买卖居间合同书
- 美容院销售顾问聘用协议
- 建筑施工赔偿合同样本
- 装修施工合同样本完整
- 生态保护与治理施工合同类型
- 临时演员招聘协议零时工
- 老旧耕地升级施工协议
- 博士研究生教育中心建设方案与发展路径
- 生态观光园园林建设工程合同
- 五年级体质健康数据
- 真空蒸镀中部分金属熔点及不同气压下蒸发温度
- 中日标准件对照表
- (完整版)密闭式静脉输液技术操作评分标准
- 《贲门失弛缓症》PPT课件课件
- 坝基渗漏问题分析
- 汽车连杆加工工艺规程及夹具设计毕业论文 (1)
- RP90型吉他综合效果处理器操作手册
- 外研版小学英语(三起)五年级下册单词表(含音标)
- 小化肥生产原理及过程
- 安全工作总结PPT
评论
0/150
提交评论