/**

* 导出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(根据模板导出)的更多相关文章

  1. POI实现导出Excel和模板导出Excel

    一.导出过程 1.用户请求导出 2.先访问数据库,查询需要导出的结果集 3.创建导出的Excel工作簿 4.遍历结果集,写入工作簿 5.将Excel已文件下载的形式回复给请求客户端 二.具体实现(截取 ...

  2. JXLS导出Excel(模板导出)

    1.导包 在pom.xml中加入依赖如下: <dependency> <groupId>org.jxls</groupId> <artifactId>j ...

  3. C# 使用Epplus导出Excel [2]:导出动态列数据

    C# 使用Epplus导出Excel [1]:导出固定列数据 C# 使用Epplus导出Excel [2]:导出动态列数据 C# 使用Epplus导出Excel [3]:合并列连续相同数据 C# 使用 ...

  4. C# 使用Epplus导出Excel [1]:导出固定列数据

    C# 使用Epplus导出Excel [1]:导出固定列数据 C# 使用Epplus导出Excel [2]:导出动态列数据 C# 使用Epplus导出Excel [3]:合并列连续相同数据 C# 使用 ...

  5. Access中一句查询代码实现Excel数据导入导出

    摘 要:用一句查询代码,写到vba中实现Excel数据导入导出,也可把引号中的SQL语句直接放到查询分析器中执行正 文: 导入数据(导入数据时第一行必须是字段名): DoCmd.RunSQL &quo ...

  6. 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的格式写入 ...

  7. Powerdesigner 导出Excel格式数据字典 导出Excel格式文件

    版权声明:本文为博主原创文章,转载请注明出处; 网上我也看到了很多的Powerdesigner 导出方法,因为Powerdesigner 提供了部分VBA功能,所以让我用代码导出Excel格式文件得以 ...

  8. JAVA 导出 Excel, JS 导出 Excel

    本介绍两种Excle导出方法: JAVA 导出 Excle, JS 导出 Excle 1, js 根据 html 页面的 table > tr > td 标签导出 js代码: //导出 v ...

  9. C# NPOI导出Excel和EPPlus导出Excel比较

    系统中经常会使用导出Excel的功能. 之前使用的是NPOI,但是导出数据行数多就报内存溢出. 最近看到EPPlus可以用来导出Excel,就自己测了下两者导出上的差异. NPIO官网地址:http: ...

随机推荐

  1. 关于linux下mysql 5.7.x数据库的yum的安装方法

    环境介绍>>>>>>>>>>>>>>>>>> 操作系统:Centos 7.1 mysql数据 ...

  2. linux命令之间的分号,&&, ||

    在用linux命令时候, 我们经常需要同时执行多条命令, 那么命令之间该如何分割呢? 分号: 顺序地独立执行各条命令, 彼此之间不关心是否失败, 所有命令都会执行. &&  : 顺序执 ...

  3. python web自动化测试中失败截图方法汇总

    在使用web自动化测试中,用例失败则自动截图的网上也有,但实际能落地的却没看到,现总结在在实际应用中失败截图的几种方法: 一.使用unittest框架截图方法:   1.在tearDown中写入截图的 ...

  4. JavaScript外部函数调用AngularJS的函数、$scope

    x 场景: 需要在用FusionCharts画的柱状图中添加点击事件,But弹出框是Angularjs搞的,我想的是直接跳到弹出框的那个路由里,然后在弹出框的控制器中绑定数据即可: /* 点击事件 * ...

  5. LUA 语言易混点

    --代码: tab1 = { key1 = "val1", key2 = "val2","val2", "val3" , ...

  6. 编译安装hadoop2.x

    1.Requirements: * Unix System * JDK 1.7+ * Maven 3.0 or later * Findbugs 1.3.9 (if running findbugs) ...

  7. vue中导入外面文件(css,js)方式

    有时我们需要导入外面的css文件(例如reset.css文件,bootstrap.css,jQuery.js文件),通常可通过import "name.css"的形式 对于rese ...

  8. CORS跨域-Nginx使用方法(Access-Control-Allow-Origin错误提示)

    问题说明 当出现上图这个的时候,是访问请求外域URL无法访问,浏览器认为访问外域URL不安全,导致访问不了简称跨域问题.而这上面出现一句很重要的话“NO Access-Control-Allow-Or ...

  9. 优化网站设计(七):避免在CSS中使用表达式

    前言 网站设计的优化是一个很大的话题,有一些通用的原则,也有针对不同开发平台的一些建议.这方面的研究一直没有停止过,我在不同的场合也分享过这样的话题. 作为通用的原则,雅虎的工程师团队曾经给出过35个 ...

  10. int 存储大小 数组元素个数

    为了得到某个类型或某个变量在特定平台上的准确大小,您可以使用 sizeof 运算符.表达式 sizeof(type) 得到对象或类型的存储字节大小.下面的实例演示了获取 int 类型的大小: 实例 # ...