- 0
- 0
- 约2.54千字
- 约 6页
- 2023-05-14 发布于四川
- 举报
JXL生成的excel文件+JAVA文件下载功能
一个需求,用户点击下载按钮,将指定的excel的报表模板使用数据库数据渲染, 然后下载到用户本地;
通常而言,对于一个文件的下载,可以有以下几种方式:
window.location.卜乃作文件名称URL全路径;
window.open(文件名称URL全路径);
这种方式不友好的地方在于服务器的目录结构直接暴露出去,而且在IE下很有 可能会报错权限问题等,甚至firefox中会触发那个年代久远而依然没有解决的 bugo所以这里不推荐。
对于jxl生成excel文件,有两种方式,一种是生成文件保存到磁盘,另一种是 直接保存到输出流中。
对于上述需求,如果生成的文件保存到磁盘,随着系统运行,磁盘会主键被占用, 需要手动去删除。由于文件都较小,所以这里采用第二种方式,直接在内存中生 成文件,然后提供给用户下载的时候response回去。
看一个例子:
用于响应下载请求的controller
/**
*下载个人订单
@param request
@param response
@param modelMap
*/
@RequestNlapping(value=,,/download. do11, method=RequestMethod.GET)
public void processDownload (HttpServletRequest requestsHttpServletResponse response
,ModelMap modelNIap) {
long userid = getllserld(request);
String ids = request.getParameter(ids);
try {
Long[] idarray = getIdsFromStringArray(ids.split( “)));
if (null == idarray || 0 == idarray.length) {
return ;
}
//直接往response的输出流中写excel
Outputstream outputstream = response? getOutputStream();
//获取文件名称
String fileName = getUserFileName(userid);
//下载格式设置
response.setContentType(,,APPLICATION/OCTET-STREA|v|,,);
response.setHeader(,Content-Disposition, attachment; filename=/ + fileName +
//读取数据渲染模板并写入outputstream中
ListPhAdvertiseOrderDO advertiseOrderList = phAdvertiseOrderService.getAdvertiseOrderByIds(idarray? userid);
outputstream =
excelFileService.generalExcelFileInOutputStream(outputStream-, advertiseOrderList);
outputstream.close();
} catch (Exception e) {
logger.error(下载报表发生异常! ”,e);
}
} /pre
其中调用到的文件服务
/* (non-Javadoc)
* @see ease.photography.service.ExcelFileService #generalExcelF ilelnOutputStream(java.lang.Stringy java.io.Outputstream, java.util.List)
*/
public Outputstream
generalExcelFilelnOutputStream (Outputstream outputStream^ ListPhAdvertiseOrderDO advertiseOrderList) throws BiffException,工OException, WriteException {
//检查参数是否合法
checkParam(tempalteFile?no File ,advertiseOrderList);
//获取模板
Workbook templatebook = Workbook.getlAlorkbook(new File(tempalteFile));
WritableWorkbook writeableWorkbook =
Workbook.createWorkbook(o
您可能关注的文档
- 传统X光胶片和X射线数字成像的区别.docx
- 太阳能采购合同书.docx
- 普通人的风口在哪儿.docx
- 冬季防火防煤气中毒安全教育内容.docx
- 2023年中考名著导读复习《钢铁是怎样炼成的》知识点归纳.docx
- 实验小学读书月活动给家长的一封信.docx
- XX公司培训协议书及注意事项(合同协议范本).docx
- 《黄冈竹楼记》王禹偁文言文原文注释翻译.docx
- 对学校文化建设的几点思考.docx
- 编辑委员会管理办法.docx
- 统编版2025年春季新版七年级下册历史 第21课 明清时期的科技与文化 教案.docx
- 雅安雨城法院书记员招聘考试真题库2025.docx
- 2026届安徽合肥市高考一模高考语文试卷试题(含答案详解).pdf
- 【专题研究】国内外城市更新研究的最新进展.pdf
- 【专题研究】老旧城区改造居民满意度影响因素研究——以遂宁市老旧城区改造为例.pdf
- 【专题研究】关于旧城空间改造理论与创意设计案例的几点思考.pdf
- 西藏拉萨市高三下学期期末物理备考重点详解.docx
- 泾县法院书记员招聘笔试真题2025.pdf
- 2026年春【苏教版】-六年级数学下册-面积的变化.pptx
- 2026年春【苏教版】-六年级数学下册-7.pptx
最近下载
- 电力电子应用技术-第5版答案-第2章-思考题和习题.doc VIP
- 2025年CSCO胃癌诊疗指南解读-PPT课件(图文).pptx VIP
- 2026年鄂尔多斯生态环境职业学院高职单招职业适应性测试备考题库及答案解析.docx VIP
- (无损检测新技术课件)无损检测技术概论.pptx VIP
- 【高清可复制】S775(六)重力式无阀滤池.pdf VIP
- 2025年山西青年职业学院单招笔试综合素质试题库含答案解析(5套共100道单选合辑).docx VIP
- 西安历史与文化.ppt VIP
- 因道路坑洼造成轮胎爆胎的民事起诉状模板.docx VIP
- 客户转托管、撤指定挽留流程和技巧.docx VIP
- 河海大学2024-2025学年第1学期《宏观经济学》期末考试试卷(B卷)附标准答案.docx
原创力文档

文档评论(0)