java操作Excel之POI(5)利用POI实现使用模板批量导出数据
后台导出方法:
在源文件夹src下面放个准备好的模板:/com/cy/template/userExportTemplate.xls,这个模板有头部一行;
/**
* 后台导出方法
* 利用POI实现使用模板批量导出数据
*/
public String export2() throws Exception{
Connection con = null;
try{
con = dbUtil.getCon();
ResultSet rs = userDao.userList(con, null);
Workbook wb = ExcelUtil.fillExcelDataWithTemplate(rs, "userExportTemplate.xls"); //把wb以流的形式输出
ResponseUtil.export(ServletActionContext.getResponse(), wb, "利用模板导出Excel.xls");
}catch(Exception e){
e.printStackTrace();
}finally{
try{
dbUtil.closeCon(con);
dbUtil.closeRs(rs);
}catch(Exception e){
e.printStackTrace();
}
} return null;
}
处理Excel的Util:
先读取这个模板,创建一个工作簿Workbook,然后塞数据,再返回这个工作簿,相当于对模板做了修改。
/**
* 处理Excel的util
*/
public class ExcelUtil{ public static Workbook fillExcelDataWithTemplate(ResultSet rs, String templateFileName) throws Exception{
InputStream is = ExcelUtil.class.getResourceAsStream("/com/cy/template/"+templateFileName);
POIFSFileSystem pfs = new POIFSFileSystem(is);
Workbook wb = new HSSFWorkbook(pfs);
Sheet sheet = wb.getSheetAt(0); //获取模板的第一个sheet页
int cellNums = sheet.getRow(0).getLastCellNum(); //获取列数
int rowIndex = 1; //从第二行开始
Row row = null;
while(rs.next()){
row = sheet.createRow(rowIndex++);
for(int i=0; i<cellNums; i++){
row.createCell(i).setCellValue(rs.getObject(i).toString());
}
} return wb;
}
}
导出的Excel:

java操作Excel之POI(5)利用POI实现使用模板批量导出数据的更多相关文章
- POI操作Excel(批量导出数据/下载excel)
目录 1.第一个demo:创建工作簿,创建sheet页,创建单元格 2.创建一个时间格式的单元格 3.遍历工作簿的行和列并获取单元格内容 4.文本提取 5.单元格对齐方式 ...
- java操作Excel、PDF文件
java操作Excel.PDF文件 分享者:Vashon 分享来源:CSDN博客 下面这些是在开发中用到的一些东西,有的代码贴的不是完整的,只是贴出了关于操作EXCEL的代码: jxl是一个*国人写的 ...
- java操作Excel处理数字类型的精度损失问题验证
java操作Excel处理数字类型的精度损失问题验证: 场景: CELL_TYPE_NUMERIC-->CELL_TYPE_STRING--->CELL_TYPE_NUMERIC POI版 ...
- java操作excel 工具类
java操作excel 可参考https://blog.csdn.net/xunwei0303/article/details/53213130 直接上代码: 一.java生成excel文件: pac ...
- Java 操作 EXCEL
今天帮朋友写了一段用来处理EXCEL内容的程序,在这里记录下自己的学习过程.主要是对EXCEL表格中的内容做分类和统计,使用计算机来做这种重复的机械性地工作再好不过了.首先,我们需要下载一个java操 ...
- JAVA操作Excel时文字自适应单元格的宽度设置方法
使用JAVA操作Excel通常都使用JXL,方法很简单网上也有很多的教程,然后往往一些细节性的问题却导致我们这些Programmer苦恼不已.这两天帮一个朋友做一个Excel表格自动生成的小软件,就遇 ...
- jxl的使用总结(java操作excel)
jxl.jar是通过java操作excel表格的工具类库: jxl.jar包:链接:http://pan.baidu.com/s/1o8qFJHw 密码:5jyq 1:通过模拟实现创建一个表格,然后模 ...
- Java操作Excel文件以及在Android中的应用
本文章由临江仙原创,转载请注明出处:http://blog.csdn.net/zhy_cheng/article/details/10286563 Excel作为一种有格式的文件,可以使用Java来对 ...
- 【转载】jxl的使用总结(java操作excel)
jxl.jar是通过java操作excel表格的工具类库: 链接:https://pan.baidu.com/s/1AAT_eA_Q47zFeQohap6eQg 提取码:777b 1:通过模拟实现创建 ...
随机推荐
- hdu 2874 Connections between cities(st&rmq LCA)
Connections between cities Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (J ...
- Python 数据类型--Bytes类型
一.Bytes类型 在Python3以后,字符串和bytes类型彻底分开了.字符串是以字符为单位进行处理的,bytes类型是以字节为单位处理的. bytes数据类型在所有的操作和使用甚至内置方法上和字 ...
- mongo长连接
php mongoclient默认都是长连接 mongo close方法可以关闭长连接 redis,mysql 短连接和长连接可选 他们的close方法都不可以关闭长连接
- servlet基础(组成与生命周期)
servlet基础作用:servlet是运行在Web服务器或应用服务器上的程序:担当web浏览器或其他HTTP客户程序发出的请求与HTTP服务器上的数据库或应用程序之间的中间层.1.读取客户程序发送的 ...
- Matlab量化函数quantiz解析
在Matlab里,有一个量化函数quantiz,其函数形式有以下三种: 输入变量: sig代表的是原始信号; codebook代表的是量化值的集合; partition是分割向量,代表对量化范围分割等 ...
- Intellij Idea2016.3 svn服务器拉取代码
1.修改idea的默认配置,取消SVN设置里的两个勾 2.拉取代码 3.输入SVN仓库的地址,然后checkout 即可
- sql,将一天所有记录按小时划分
mysql: select date_format(H_TIME,'%H') as HOUR, ROUND(AVG(H_TEMPERATURE),1) as TEMP, ROUND(AVG(H_HUM ...
- python可视化爬虫实现“京东试用”批量申请
介绍: 环境:chromedriver 2.41.578700+ selenuim3.14.0 过程: 1.打开京东主页 2.登录京东 3.打开京东试用页面 4.获取商品列表 5.自动申请试用(该商品 ...
- can-utils源码解析cansend
前言 本文主要介绍socketCan中的发送函数cansend的源码解析. 代码 /* * cansend.c - simple command line tool to send CAN-frame ...
- opencv-python教程学习系列3-视频操作
前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍视频的获取和保存,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: 系统环境 ...