1. /**
  2. * 输出Excel文档
  3. *
  4. * @param response
  5. * @param sheetName 文件名称
  6. * @param firstCellTile 第一行的标题
  7. * @param cells 列名集合
  8. * @param cellData 每列数据集合,应该和列名对应起来
  9. * @throws IOException
  10. */
  11. public static void createExcel(HttpServletResponse response, String sheetName, String firstCellTile,
  12. List<String> cells, List<Object[]> cellData) throws IOException {
  13. //创建HSSFWorkbook对象(excel的文档对象)
  14. HSSFWorkbook wb = new HSSFWorkbook();
  15. //建立新的sheet对象(excel的表单)
  16. HSSFSheet sheet = wb.createSheet(sheetName);
  17. //在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个
  18. HSSFRow row1 = sheet.createRow(0);
  19. //创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个
  20. HSSFCell cell = row1.createCell(0);
  21. //设置单元格内容
  22. cell.setCellValue(firstCellTile);
  23. //合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
  24. sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, (cells.size() - 1)));
  25. //在sheet里创建第二行
  26. HSSFRow row2 = sheet.createRow(1);
  27.  
  28. //创建单元格并设置单元格内容
  29. for (int i = 0; i < cells.size(); i++) {
  30. row2.createCell(i).setCellValue(cells.get(i));
  31. }
  32. //创建单元格并设置单元格内容
  33. for (int i = 0; i < cellData.size(); i++) {
  34. //在sheet里从第三行开始创建
  35. HSSFRow row3 = sheet.createRow(i + 2);
  36. Object[] obj = cellData.get(i);
  37. for (int k = 0; k < obj.length; k++) {
  38. String type = obj[k].getClass().getName();
  39. if ("java.sql.Timestamp".equals(type)) {
  40. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//定义格式,不显示毫秒
  41. row3.createCell(k).setCellValue(df.format(obj[k]));
  42. } else {
  43. row3.createCell(k).setCellValue(String.valueOf(obj[k]));
  44. }
  45. }
  46. }
  47. //输出Excel文件
  48. OutputStream output = response.getOutputStream();
  49. response.reset();
  50. //中文需要重新编码,不然无法显示中文文件名称
  51. sheetName = new String(sheetName.getBytes(), "ISO-8859-1");
  52. response.setHeader("Content-disposition", "attachment; filename=" + sheetName + ".xls");
  53. response.setContentType("application/msexcel");
  54. wb.write(output);
  55. output.close();
  56. }

cell 数据样式: List list=new ArrayList<>(); list.add("1“);。。。。。

cellData中Object【】数据样式  obj1,obj2,obj3. PS:obj的数组长度应该与cells的长度是一样的。

结果样式:

自动生成Excel 报表工具类的更多相关文章

  1. 使用POI做的一个生成Excel的工具类。包含了导出Excel和解析Excel方法

    PoiExcelUtils.java /** * */ package com.common.office; import java.io.File; import java.io.FileInput ...

  2. python自动生成excel报表

    1.将SQL语句查询的内容,直接写入到excel报表中,以下为全部脚本.要求:此版本必须运维在windows平台,并且安装了excel程序,excel版本不限. python版本为2.7 if b 判 ...

  3. java自动机器人自动生成修姓名工具类

    public class GenerateName { public static String getName() { Random random = new Random(); String[] ...

  4. 下载数据到Excel,工具类

    使用反射将model数据下载到Excel中 package test.upload.utils; import java.lang.reflect.Method; import java.math.B ...

  5. 让Visual Studio 2013为你自动生成XML反序列化的类

    Visual Sutdio 2013增加了许多新功能,其中很多都直接提高了对代码编辑的便利性.如: 1. 在代码编辑界面的右侧滚动条上显示不同颜色的标签,让开发人员可以对所编辑文档的修改.查找.定位情 ...

  6. 自动生成XML反序列化的类

    原文地址:http://www.cnblogs.com/jaxu/p/3632077.html   Visual Sutdio 2013增加了许多新功能,其中很多都直接提高了对代码编辑的便利性.如: ...

  7. 使用POI生成Excel报表

    先把报表模板截图贴上来 下面是POI编写的报表生成类ExcelReport.java package com.jadyer.report; import java.io.FileNotFoundExc ...

  8. Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类

    Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ©Copyright 蕃薯耀 20 ...

  9. java生成excel报表文件

    此次简单的操作将数据从数据库导出生成excel报表以及将excel数据导入数据库 首先建立数据库的连接池: package jdbc; import java.io.FileInputStream; ...

随机推荐

  1. mongo java 踩坑记

    为什么会有这么多坑 1.  Java会把 id:String = "合法ObjectId"  好心好意的 转为  _id:ObjectId 类型. 2. 为了避免第1点, 我定义了 ...

  2. ubuntu系统升级和其他相关操作记录

    之前在openstack中安装了ubuntu 12.04虚拟机,版本较低,需要升级为高版本.下面分享下升级过程: ubuntu系统升级操作:$ cat /etc/issueUbuntu 12.04.5 ...

  3. git-两小时简单使用教程

    两小时学会Git玩转Github 1. 了解Git和Github 1.1什么是Git Git是一个免费.开源的版本控制软件 1.2什么是版本控制系统 版本控制是一种记录一个或若干个文件内容变化,以便将 ...

  4. 个人博客作业_week7

    心得 在为期将近一个月的团队编程中,给我感受最深的是敏捷开发和团队中队员之间的互补. 在最初的软件开发中,由于以前没有这方面的经验,所以并没有很大的进展.在慢慢过度中,我们找到了自己的节奏感,大家各自 ...

  5. 个人作业Week1

    一.<构建之法>提问 1.需求是什么?需求的规范需要明确吗? 2.一个人开发效率非常高,多人开发,个人效率随团队人数上升而直线下降,我们一般需要将大项目拆为小项目,使协作耦合产生的效率负影 ...

  6. 《蹭课神器》Alpha版使用说明

    <蹭课神器>是一款方便大学生蹭课的软件,目前实现了查询课表的功能,还没有实现搜索和提醒的功能.有待进一步的开发! 登录之后点击查询操作,查询课表. 课表显示如下

  7. 网络:Xen理解

    Xen是由剑桥大学计算机实验室开发的一个开源项目.是一个直接运行在计算机硬件之上的用以替代操作系统的软件层,它能够在计算机硬件上并发的运行多个客户操作系统(Guest OS). 一.Xen虚拟化类型 ...

  8. 小学四则运算APP 第三阶段冲刺-第一天

    团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第三次冲刺阶段时间:12.12~12.19 本次发布的是音乐播放功能,可以根据用户需求一边播放音乐一边做题,也拥有暂停播放音乐的功能,增强 ...

  9. I/O(输入/输出)

    1.创建引用ObjectInputStream ois =null; ObjectOutputStream oos = null; ByteArrayInputStream bais = null; ...

  10. sqlalchemy orm 操作 MySQL

    一.ORM介绍 orm英文全称object relational mapping,是对象映射关系程序,简单来说类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为了 ...