Java根据模板生成excel并下载
需要用到的jar包有freemarker-2.3.18.jar,freemarker-util-0.0.1-SNAPSHOT.jar,jxl-2.6.10.jar,jxl-report-1.0.jar,这些网上都有,可以去找
来吧,直接上干货。excel模板如图:
很容易理解,需要填充的内容用EL表达式替代即可。
上代码吧:
// 生成ExcelReportEnginer enginer = new ReportEnginer();String modelPath = request.getServletContext().getRealPath("/")+ "/static/model/验收单模板.xls"; //模板的路径InputStream inputStream = new FileInputStream(new File(modelPath));
//下载有两种方式,1.先生成excel存到服务器,再从服务器下载下来 2.直接导出excel
先来第一种:
//第一步,先存到服务器
String path = "";//这个是服务器上保存excel的路径File dir = new File(path);if (!dir.exists()) {// 判断路径是否存在dir.mkdirs(); // 可以在不存在的目录中创建文件夹}path += "test.xls"; // excel的文件名OutputStream outputStream = new FileOutputStream(new File(path));try {enginer.excute(inputStream, map, outputStream);} catch (Exception e) {e.printStackTrace();}inputStream.close();outputStream.close();
//第二步,下载
try {// path是指欲下载的文件的路径。
File file = new File(path);
// 取得文件名。
String filename = file.getName();
// 设置响应头,控制浏览器下载该文件
response.setHeader("content-disposition", "attachment;filename="
URLEncoder.encode(filename, "UTF-8"));
// 读取要下载的文件,保存到文件输入流
FileInputStream in = new FileInputStream(pdfPath);
// 创建输出流
OutputStream out = response.getOutputStream();
// 创建缓冲区
byte buffer[] = new byte[1024];
int len = 0;
// 循环将输入流中的内容读取到缓冲区当中
while ((len = in.read(buffer)) > 0) {
// 输出缓冲区的内容到浏览器,实现文件下载
out.write(buffer, 0, len);
}
// 关闭文件输入流
in.close();
// 关闭输出流
out.close();
} catch (IOException ex) {
ex.printStackTrace();
}
至此,第一种就搞定了.第二种:
ReportEnginer enginer = new ReportEnginer();
InputStream inputStream = new FileInputStream(new File(excelTempletePath));
response.setContentType("application/vnd.ms-excel");
OutputStream outputStream = response.getOutputStream();
enginer.excute(inputStream, map, outputStream);
inputStream.close();
outputStream.close();
里面map的内容如下:
{ "C_ID": 9, "C_NUM": "YS1709040001", "C_NAME": "在线办公平台", "C_CODE": "HT0010", "C_AMOUNT": 700000, "C_DATE": "2017-05-24", "C_APPLICANTNAME": "Test", "C_DEPT": "南天门", "C_STATE": "14", "C_SUPPLIER": "供应商", "C_BUYNUMBER": " ", "eqList": [ { "E_ID": 9, "E_NAME": "笔记本电脑", "E_ITEMTYPE": "通用设备、专业设备", "E_ITEM": "其它计算机设备及软件", "E_MODEL": "型号", "E_TECHNICALPARAMETERS": "技术参数", "E_NOTE": "备注", "E_FACTORY": "生产厂家", "E_BRAND": "品牌", "E_UNITPRICE": 6000, "E_NUM": 2, "TOTALPRICE": 12000, "ROWNUM": 1, "C_BUYNUMBER": " ", "P_ISIMPORT": "是", "installList": [ { "L_SERIAL_NUM": 1, "L_FACTORY_NO": "154131", "L_INSTALLATIONLOCATION": "111" }, { "L_SERIAL_NUM": 2, "L_FACTORY_NO": "1541444", "L_INSTALLATIONLOCATION": "222" } ] } ], "A_DELIVERYDATE": "2017-09-04", "A_DELIVERYADDRESS": "丰盛的覅", "A_ACCEPTANCEDATE": "2017-09-05", "A_ACCEPTANCEADDRESS": "第三方", "acceptExpertList": [ { "E_ID": 0, "E_NAME": "test", "E_IDCARD": "test", "E_UNIT": "电子工程学院", "E_POSITION": "fsdgfdsgdf", "E_TITLE": "aa1", "E_CONTACTPHONE": "02885013835", "E_PHONE": "18583929312", "E_EAMIL": "18688888888@qq.com", "E_ADDRESS": "成都", "E_PROFESSIONAL": "在不安也很近黄金时代", "B_NAME": "校内", "ROWNUM": 1 }, { "E_ID": 1, "E_NAME": "pingzong", "E_IDCARD": "pingzong", "E_UNIT": "电子工程学院", "E_POSITION": "fe", "E_TITLE": "fes", "E_CONTACTPHONE": "028-85465853", "E_PHONE": "13161519203", "E_EAMIL": "efw@qq.com", "E_ADDRESS": "fewfaw", "E_PROFESSIONAL": "fafeaf", "B_NAME": "校内", "ROWNUM": 2 } ]}
就是这些了,上一个最后导出来excel的图:
Java根据模板生成excel并下载相关推荐
- Java根据模板生成excel文件【Java】【EasyExcel】【xls】
Background 前两天客户反应对数据导出的文件格式不太满意,然后给了我们模板,让我们按照模板导出数据.于是一通修改(excel数据量有限制他们也不管,之前我们给的csv格式). Java操作ex ...
- java通过poi生成excel并下载出现文件打不开、文件格式和文件扩展名无效问题的分析与解决
需求描述: 需要完成这样一个功能:后台通过poi生成excle,前台点击按钮可直接下载. 代码逻辑(核心部分): 第一种: public String generatePlanExcel(@Reque ...
- Java在服务器端生成Excel并下载到本地
后台代码: @ResponseBody@RequestMapping(value = "export")public AjaxJson exportFile(Office offi ...
- java使用jxl生成excel表格,jsp使用js下载excel文件xls
java使用jxl生成excel表格,jsp使用js下载excel文件 后端代码 maven jar包 主体代码逻辑 引入的jar包 具体代码段 重点详解 表头和表格内容两种格式 直接将 HttpSe ...
- python excel处理框架_django框架基于模板 生成 excel(xls) 文件操作示例
本文实例讲述了django框架基于模板 生成 excel(xls) 文件操作.分享给大家供大家参考,具体如下: 生成Excel 文件,很多人会采用一些开源的库来实现,比如python 自带 csv 库 ...
- NPOI 菜鸟实践行之根据指定的模板生成Excel 2003格式的文件 (一)
感谢群里的各位朋友的指导和教学,感谢Tony Qu的热心指导,感谢阿修罗兄提供的Excelhelper类 谈谈个人对Excel的理解,结合NPOI,个人水平一般般,菜鸟一只 Excel 打开后,分为s ...
- JAVA 根据模板生成doc文件
JAVA 根据模板生成doc文件 需求 根据模板生成对应的doc文档,文档内容动态填充. 实现 1.将doc模板转换为ftl文件,放入项目中 1.1 首先将模板另存为xml文件 1.2 更改xml文件 ...
- springmvc下解析模板生成Excel ,用freemarker
工具类解析模板生成Excel public class TemplateParseUtil {/** * 解析模板生成Excel * @param templateDir 模板目录 * @param ...
- java使用模板导出Excel表格
java使用模板导出Excel表格 文章目录 java使用模板导出Excel表格 模板示例 一.引入依赖 二.使用步骤 1.添加工具类 2.导出Excel 模板示例 一.引入依赖 <depend ...
- ftl模板导出excel_使用freemark模板生成excel
1.背景 文件操作中导入导出功能在项目中十分常见,这里我们要聊的是导出excel这一功能.老话题常谈常新,小编给大家介绍使用freemark模板的方式导出excel. 2.实现 Demo中采用spri ...
最新文章
- 在实践中我遇到stompjs, websocket和nginx的问题与总结
- HttpServletRequest看这篇文章就够了
- C语言学习之有一个分数序列2/1、3/2、5/3、8/5、13/8、21/13,……求出这个数列的前20项之和。
- android 辅助功能_辅助功能简介
- lucene自动补全_使用自动机的Lucene新的邻近查询
- python - Flask 基础(1)
- pythonmkdir语法错误_Python mkdir一个有难度的问题
- php将数组转成字符串的,php怎样将数组转化成字符串
- 微信中文件为什么不能另存?
- 将java 文件夹里面的.java 文件 拷贝到temp文件夹下,并且修改后缀名为.txt
- 微信小程序如何在地图选择地址并返回经纬度
- vediojs m3u8 视频清晰度切换
- 揭秘!一个无线电黑客的玩具
- 风无定,人无常,人生如浮萍,聚散两茫茫——元组类型、字典类型的内置方法,第九天
- 视频分割怎么使用?别担心,好用方法来啦
- C语言学习笔记——根据二叉树的后序和中序遍历序列,求这棵树的先序和层次遍历序列
- 谁能做到电商平台的公平性,谁就是下一任电商老大?
- set the request's mode to 'no-cors' to fetch the resource with CORS disa
- IDEA 创建package包
- Java小农养成记第四天
热门文章
- OpenCV 人脸识别、图片相似度检测
- html语言个人网页,个人网页介绍家乡纯html
- 化验室计算机分级管理,[欧盟法规] 欧盟受控实验室之《计算机化系统验证》摒弃了GAMP5的分类? (1之3)...
- day30 JavaWeb阶段——HTML基础(源码+w3cschool菜鸟教程)
- Win10系统离线安装可选功能XPS查看器(XPS Viewer)的详细说明(修订版)
- 便捷、高效、智能—从运维视角看星环科技大数据基础平台TDH
- Andriod动画效果总结以及帧动画实现
- 不确定度在线计算_气相色谱质谱法快速测定毒死蜱、联苯菊酯不确定度评定
- 想提取嵌入视频文件的字幕流么?一条命令帮你解决|脚本工具系列
- 前端网页设计必逛的六个宝藏网站(非常值得收藏)