jxls使用模版导出Excel
/**
* 使用模版导出Excel
*/
@SuppressWarnings({ "unchecked", "deprecation" })
@Override
public String experExcel(Card card,HttpServletRequest request,HttpServletResponse response){
try {
Map<Object,Object> map=new HashMap<Object, Object>();
StringBuffer where=new StringBuffer();
StringBuffer useSql=new StringBuffer();
Users user=(Users) request.getSession().getAttribute("user");
//需要判断是否查询总帐号
useSql.append(" from UseTbl where userIdFk='"+user.getId()+"' ");
List<UseTbl> result=baseDao.qryInfo(useSql.toString(), null);//查询数据库数据
map.put("experMessageList",result);
map.put("experDate",new Date());
String basePath=request.getRealPath("/");
String temp=user.getName()+"的账单信息-"+user.getId()+".xls";
createExcel(basePath+"files/账单信息.xls", map, basePath+"file/down/",temp);//basePath+"files/账单信息.xls" 模版的路径
//temp = new String(temp.getBytes("utf-8"),"iso-8859-1");
//InputStream is=new FileInputStream(new File(basePath+"upload/experMessageDownload/专家信息.xls"));
return download(request, response, basePath+"file/down/"+temp, temp);
} catch (Exception e) {
e.printStackTrace();
return "error";
}
}
/**
* 用excel模版模版导出excel
*
* @param templeteSrc
* 模版路径(含名称)
* @param params
* 模版参数
* @param newExcelPath
* 生成excel路径
*/
public static void createExcel(String templeteSrc, Map<Object,Object> params,
String newExcelPath,String cre_FileName) {
try {
XLSTransformer transformer = new XLSTransformer();
File file=new File(newExcelPath);
if(!file.exists()){
file.mkdirs();
}
transformer.transformXLS(templeteSrc, params, newExcelPath+cre_FileName);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 下载
*
* @param request
* @param response
* @param urlandfile
* 文件路径+文件名
* @param fileName
* 文件名
* @return success 和 error
* @throws Exception
*/
public static String download(HttpServletRequest request,
HttpServletResponse response, String urlandfile, String fileName)
throws Exception {
String msg = null;
try {
response.setCharacterEncoding("UTF-8");
javax.servlet.ServletOutputStream ou = response.getOutputStream();
// 文件名
// String filename=new
// String(fileName.getBytes("ISO8859_1"),"GB2312").toString();
// 路径
java.io.File file = new java.io.File(urlandfile);
if (!file.exists()) {
System.out.println(file.getAbsolutePath() + " 文件不能存在!");
msg = "unexists";
return msg;
}
// 读取文件流
java.io.FileInputStream fileInputStream = new java.io.FileInputStream(
file);
// 下载文件
// 设置响应头和下载保存的文件名
response.setContentType("application/x-msdownload;charset=UTF-8");// 弹出下载的框
response.setContentLength((int)file.length());// 下载统计文件大小的进度
response.setHeader("Content-Disposition", "attachment; filename="
+ new String(fileName.getBytes(), "ISO-8859-1"));
// 下载框的信息
if (fileInputStream != null) {
// int filelen = fileInputStream.available();
// 文件太大时内存不能一次读出,要循环
byte a[] = new byte[1024];
int n = 0;
while (n != -1) {
n = fileInputStream.read(a);
if (n > 0) {
ou.write(a, 0, n);
}
}
fileInputStream.read(a);
}
fileInputStream.close();
ou.close();
msg = "success";
} catch (Exception e) {
e.printStackTrace();
msg = "error";
}
// 解决完成后使用一切正常,但是总抛出java.lang.IllegalStateException异常主要是流还存在
return msg;
}
=============excel模版(账单信息.xls)============================

| 名称 | 卡号 | 当期金额 | 消费日期 | 资金动向 | 消费类型 |
| <jx:forEach items="${experMessageList}" var="experMessage"> | |||||
| ${experMessage.name} | ${experMessage.cardFk} | ${experMessage.xffs} | ${experMessage.zrzh} | ${experMessage.statsu} | ${experMessage.Xflx} |
| </jx:forEach> | |||||
jxls使用模版导出Excel的更多相关文章
- [poi使用]使用excel模版导出excel
Apache POI是基于Office Open XML标准(OOXML)和Microsoft的OLE 2复合文档格式(OLE2)处理各种文件格式的开源项目.简而言之,您可以使用Java读写MS ...
- 按模版导出Excel
实现效果: excel模版: ExcelHandle.java package com.common.utils; import java.io.File; import java.io.FileIn ...
- POI实现导出Excel和模板导出Excel
一.导出过程 1.用户请求导出 2.先访问数据库,查询需要导出的结果集 3.创建导出的Excel工作簿 4.遍历结果集,写入工作簿 5.将Excel已文件下载的形式回复给请求客户端 二.具体实现(截取 ...
- Java使用POI导出excel(下)——实例与小技巧
[更新]:thinkgem的导出工具类: /** * Copyright © 2012-2016 <a href="https://github.com/thinkgem/jeesit ...
- weblogic 12c下jxls导出excel报错Could not initialize class org.apache.poi.xssf.usermodel.XSSFVMLDrawing
周一,开发反馈weblogic 12c下jxls导出excel报错,公司环境和UAT环境均报错,看日志如下: 2016-06-08 09:16:55,825 ERROR org.jxls.util.T ...
- JXLS导出Excel(模板导出)
1.导包 在pom.xml中加入依赖如下: <dependency> <groupId>org.jxls</groupId> <artifactId>j ...
- java使用jxls导出Excel
jxls是基于POI的Excel模板导出导入框架.通过使用类似于jstl的标签,有效较少导出Excel的代码量. 1.pom <!-- https://mvnrepository.com/art ...
- POI3.10 根据Excel模版导出数据测试
1:所需jar包 2:Mysql数据库表内容如下: 3:代码结构如下: (1)User.java public class User { private int id; private String ...
- 导出Excel(导出一个模版)
有时,客户需要一个标准的模板来填东西,然后在导入 这时可以弄好excel模板,供导出 /** * 导出excel模板文件 * @param request * @param response * @r ...
随机推荐
- casting in C++
这是2013年写的一篇旧文,放在gegahost.net上面 http://raison.gegahost.net/?p=39 February 20, 2013 casting in C++ Fil ...
- Linux Mini 安装 VMware Tools
1.挂载VMware Tools光盘 mount -t iso9660 /dev/cdrom /opt/ 2.安装依赖,安装Tools 将文件复制至 tmp目录解压VMwareTools-10.0.6 ...
- 使用Recast.AI创建具有人工智能的聊天机器人
很多SAP顾问朋友们对于人工智能/机器学习这个话题非常感兴趣,也在不断思考如何将这种新技术和SAP传统产品相结合.Jerry之前的微信公众号文章C4C和微信集成系列教程曾经介绍了Partner如何利用 ...
- uva 1451 数形结合
思路:枚举点t,寻找满足条件的点t': 计sum[i]为前i项合,平均值即为sum[t]-sum[t'-1]/t-t'+1 设(Pi=(i,Si),表示点在s中的位置,那么就可以画出坐标图,问题就转化 ...
- C/C++语言:科学计数法
主要用来表示浮点数,表达方便 浮点数的科学计数,由三个部分组成: a + E + b a:由一个浮点数组成,如果写成整数,编译器会自动转化为浮点数: E:可以大写E,也可以小写e: b:使用一个十进制 ...
- JetBrains系列产品激活
注册时,在打开的License Activation窗口中选择“License server”,在输入框输入下面的网址: http://idea.codebeta.cn https://s.tuzhi ...
- python3查询Excel中A表在B表没有的数据,并保存到新的Excel,这里用的是“xlrd”和“xlwt”
import xlrd import xlwt # 打开A表,将A表的数据存放到cols1中,这里打印出来是方便查看测试数据. data1 = xlrd.open_workbook(r'F:\cars ...
- 【干货分享】C# 实体类生成工具
前言: 项目实战中不论是业务编码还是通用编码,总会归纳出一些通用的工具类.放入项目中一劳永逸,让兄弟姐妹们避免编写重复代码.所以利用了工作之余的时间,将这些散落在多个项目中精致优雅的工具类,归纳起来形 ...
- Xcode导入第三方库
Xcode导入第三方库,例如TapkuLibrary iOS开源框架Tapku下载地址:https://github.com/devinross/tapkulibrary.git 1.创建你的工程项目 ...
- Node.js实现简单的爬取
学习[node.js]也有几天时间了,所以打算写着练练手:索然我作为一个后端的选手,写起来还有那么一丝熟悉的感觉.emmm~~ ‘货’不多讲 ,开搞........ 首先是依赖选择: 代码块如下: ...