版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年昆明市官渡区公务员招聘笔试备考题库及答案解析(考点卷)
- 2026年湖南理工职业技术学院辅导员考试题库含答案
- 2026年成人高考专升本政治时政高分答题试题及答案
- 2026年成人高考政治选择自测试题及答案
- 2025届广州地铁集团有限公司校园招聘笔试历年参考题库附带答案详解
- 2025宁夏数据科技股份有限公司市场化选聘经理层成员笔试历年参考题库附带答案详解
- 2025北京国家电投绿能科技(国核电力院)招聘32人笔试历年参考题库附带答案详解
- 2025中国石油天然气集团有限公司在招企业校招+社招多岗多地火热招聘中笔试历年参考题库附带答案详解
- 关于外部会议安排的告知函6篇范本
- 2026新疆昌吉州阜康市司法局招聘编制外司法协理员10人笔试参考题库及答案详解
- 专题 平行四边形中的最值问题(解析版)
- JGJ6-2011 高层建筑筏形与箱形基础技术规范
- 2023年中国中医科学院广安门医院专项招聘医学类人员及高层次卫技人才考试历年高频考点试题含答案解析
- 工作场所安全使用化学品规定
- 小学二年级数学下册无纸化测试题
- 《大道之行也》比较阅读12篇(历年中考语文文言文阅读试题汇编)(含答案与翻译)(截至2020年)
- T-QGCML 772-2023 管状电机标准规范
- GA 1815.8-2023交通运输系统反恐怖防范要求第8部分:公路隧道
- 双梁抓斗桥式起重机大修施工方案【完整版】
- 化工设计概论第八章向非工艺专业提供设计条件
- 计算机组成原理考试题
评论
0/150
提交评论