poi 实战代码---导出Excel(根据模板导出)
/**
* 导出excel
* @param request
* @param response
* @return
* @throws Exception
*/
@RequestMapping("exportExcel")
@Action(description="导出excel")
public void exportExcel(HttpServletRequest request, HttpServletResponse response) throws Exception
{
//获取实体类,并取得时刻点的值,存放到map里面
String id = RequestUtil.getString(request,"id");
LoadDate ld = new LoadDate();
ld = loadDateService.getById(Long.parseLong(id));
String mapVal = ld.getValue();
JSONObject json = JSONObject.fromObject(mapVal);
Map<String,String> map = new HashMap<String,String>();
if (BeanUtils.isNotEmpty(json)) {
Iterator<String> iterator = json.keys();
while (iterator.hasNext()) {
String ie = (String) iterator.next();
map.put(ie, json.getString(ie));
}
}
String dirPath = FileUtil.getRootPath() + File.separator+"commons" +File.separator+"template"+File.separator+"exportMode"+File.separator;
String fileName="loadTemplate.xls";
FileInputStream inStream = new FileInputStream(new File(dirPath+fileName));
//读取excel模板
HSSFWorkbook wb = new HSSFWorkbook(inStream); //读取excel模板
//读取了模板内所有sheet内容
HSSFSheet sheet = wb.getSheetAt(0);
HSSFCell cell = null;
//在相应的单元格进行赋值
for(int i=2;i<=97;i++){
cell = sheet.getRow(i).getCell(1);
String tmp = cell.getStringCellValue();
cell.setCellValue(map.get(tmp));
}
for(int i=98;i<=102;i++){
cell = sheet.getRow(i).getCell(1);
String tmp = cell.getStringCellValue();
if("ycgfdl".equals(tmp)){
if(BeanUtils.isNotEmpty(ld.getYcgfdl())){
cell.setCellValue(ld.getYcgfdl());
}else{
cell.setCellValue("");
}
}else if("ycqdl".equals(tmp)){
if(BeanUtils.isNotEmpty(ld.getYcqdl())){
cell.setCellValue(ld.getYcqdl());
}else{
cell.setCellValue("");
}
}else if("yccfdLi".equals(tmp)){
if(BeanUtils.isNotEmpty(ld.getYccfdLi())){
cell.setCellValue(ld.getYccfdLi());
}else{
cell.setCellValue("");
}
}else if("yccfdLl".equals(tmp)){
if(BeanUtils.isNotEmpty(ld.getYccfdLl())){
cell.setCellValue(ld.getYccfdLl());
}else{
cell.setCellValue("");
}
}else if("ycdgdl".equals(tmp)){
if(BeanUtils.isNotEmpty(ld.getYcdgdl())){
cell.setCellValue(ld.getYcdgdl());
}else{
cell.setCellValue("");
}
}
}
response.setContentType("application/octet-stream;charset=UTF-8");
response.setHeader("Content-Type","application/vnd.ms-excel");
response.setHeader( "Content-Disposition", "attachment;filename=" + new String( fileName.getBytes("GB2312"), "8859_1" ));
response.addHeader("Pargam", "no-cache");
response.addHeader("Cache-Control", "no-cache");
OutputStream out = response.getOutputStream();
wb.write(out);
out.flush();
out.close();
}
poi 实战代码---导出Excel(根据模板导出)的更多相关文章
- POI实现导出Excel和模板导出Excel
一.导出过程 1.用户请求导出 2.先访问数据库,查询需要导出的结果集 3.创建导出的Excel工作簿 4.遍历结果集,写入工作簿 5.将Excel已文件下载的形式回复给请求客户端 二.具体实现(截取 ...
- JXLS导出Excel(模板导出)
1.导包 在pom.xml中加入依赖如下: <dependency> <groupId>org.jxls</groupId> <artifactId>j ...
- C# 使用Epplus导出Excel [2]:导出动态列数据
C# 使用Epplus导出Excel [1]:导出固定列数据 C# 使用Epplus导出Excel [2]:导出动态列数据 C# 使用Epplus导出Excel [3]:合并列连续相同数据 C# 使用 ...
- C# 使用Epplus导出Excel [1]:导出固定列数据
C# 使用Epplus导出Excel [1]:导出固定列数据 C# 使用Epplus导出Excel [2]:导出动态列数据 C# 使用Epplus导出Excel [3]:合并列连续相同数据 C# 使用 ...
- Access中一句查询代码实现Excel数据导入导出
摘 要:用一句查询代码,写到vba中实现Excel数据导入导出,也可把引号中的SQL语句直接放到查询分析器中执行正 文: 导入数据(导入数据时第一行必须是字段名): DoCmd.RunSQL &quo ...
- Html Table用JS导出excel格式问题 导出EXCEL后单元格里的000412341234会变成412341234 7-14 会变成 2018-7-14(7月14) 自定义格式 web利用table表格生成excel格式问题 js导出excel增加表头、mso-number-format定义数据格式 数字输出格式转换 mso-number-format:"\@"
Html Table用JS导出excel格式问题 我在网上找的JS把HTML Tabel导出成EXCEL.但是如果Table里的数字内容为0开的的导成Excel后会自动删除0,我想以text的格式写入 ...
- Powerdesigner 导出Excel格式数据字典 导出Excel格式文件
版权声明:本文为博主原创文章,转载请注明出处; 网上我也看到了很多的Powerdesigner 导出方法,因为Powerdesigner 提供了部分VBA功能,所以让我用代码导出Excel格式文件得以 ...
- JAVA 导出 Excel, JS 导出 Excel
本介绍两种Excle导出方法: JAVA 导出 Excle, JS 导出 Excle 1, js 根据 html 页面的 table > tr > td 标签导出 js代码: //导出 v ...
- C# NPOI导出Excel和EPPlus导出Excel比较
系统中经常会使用导出Excel的功能. 之前使用的是NPOI,但是导出数据行数多就报内存溢出. 最近看到EPPlus可以用来导出Excel,就自己测了下两者导出上的差异. NPIO官网地址:http: ...
随机推荐
- 8 -- 深入使用Spring -- 5...3 使用@CacheEvict清除缓存
8.5.3 使用@CacheEvict清除缓存 被@CacheEvict注解修饰的方法可用于清除缓存,使用@CacheEvict注解时可指定如下属性: ⊙ value : 必须属性.用于指定该方法用于 ...
- SpringMVC -- @RequestMapping -- 随记
@RequestMapping RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径. RequestMappi ...
- 更换 homebrew 国内镜像源
Brew 是OS X 上类似apt-get以及yum的一个软件包管理器,它依托于Github……………… 所以,虽然你侥幸下载到了 brew,但你肯定是无法更新 brew 的.原因你懂.不过虽然不能更 ...
- Keepalived 配置高可用集群
一.Keepalived 简介 (1) Keepalived 能实现高可用也能实现负载均衡,Keepalived 是通过 VRRP 协议 ( Virtual Router Redundancy Pro ...
- No suitable servers found (`serverselectiontryonce` set): [Failed connecting to '115.28.161.44:27017': Connection timed out] php mongodb 异常
我 php mongodb 拓展使用的是 MongoDB driver 今天查询数据的时候 偶尔会提示, No suitable servers found (`serverselectiontry ...
- sencha touch/Ext Js 6 + 自定义扩展的用法
app.js中加入以下代码 //指定ux起调目录 Ext.Loader.setPath({ 'ux': 'app/ux' }); 在app目录中创建一个ux文件夹 假如我们使用这个扩展,扩展地址:ht ...
- [原]openstack-kilo--issue(十五) WARNING keystonemiddleware.auth_token Authorization failed for token Could not find token
在创建vm的时候在controller node报错: -- :: INFO neutron.wsgi [req-a815cde4-f49c-4d23-b9c3-030bfc2a75d4 ] /Jan ...
- Android摸索-二、解决Android SDK Manager下载太慢问题
下载Android SDK Manger 那个速度………… 有了这个再也不用担心了 1.打开android sdk manager 2.打开tool->options 按图片中输入参数:mi ...
- Tomcat8配置用户名密码
配置内容: 1.vim tomcat-user.xml 添加以下内容 <role rolename="manager-gui"/> <role rolenam ...
- python数据类型之pandas—DataFrame
DataFrame定义: DataFrame是pandas的两个主要数据结构之一,另一个是Series —一个表格型的数据结构 —含有一组有序的列 —大致可看成共享同一个index的Series集合 ...