自动生成Excel 报表工具类
- /**
- * 输出Excel文档
- *
- * @param response
- * @param sheetName 文件名称
- * @param firstCellTile 第一行的标题
- * @param cells 列名集合
- * @param cellData 每列数据集合,应该和列名对应起来
- * @throws IOException
- */
- public static void createExcel(HttpServletResponse response, String sheetName, String firstCellTile,
- List<String> cells, List<Object[]> cellData) throws IOException {
- //创建HSSFWorkbook对象(excel的文档对象)
- HSSFWorkbook wb = new HSSFWorkbook();
- //建立新的sheet对象(excel的表单)
- HSSFSheet sheet = wb.createSheet(sheetName);
- //在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个
- HSSFRow row1 = sheet.createRow(0);
- //创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个
- HSSFCell cell = row1.createCell(0);
- //设置单元格内容
- cell.setCellValue(firstCellTile);
- //合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
- sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, (cells.size() - 1)));
- //在sheet里创建第二行
- HSSFRow row2 = sheet.createRow(1);
- //创建单元格并设置单元格内容
- for (int i = 0; i < cells.size(); i++) {
- row2.createCell(i).setCellValue(cells.get(i));
- }
- //创建单元格并设置单元格内容
- for (int i = 0; i < cellData.size(); i++) {
- //在sheet里从第三行开始创建
- HSSFRow row3 = sheet.createRow(i + 2);
- Object[] obj = cellData.get(i);
- for (int k = 0; k < obj.length; k++) {
- String type = obj[k].getClass().getName();
- if ("java.sql.Timestamp".equals(type)) {
- SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//定义格式,不显示毫秒
- row3.createCell(k).setCellValue(df.format(obj[k]));
- } else {
- row3.createCell(k).setCellValue(String.valueOf(obj[k]));
- }
- }
- }
- //输出Excel文件
- OutputStream output = response.getOutputStream();
- response.reset();
- //中文需要重新编码,不然无法显示中文文件名称
- sheetName = new String(sheetName.getBytes(), "ISO-8859-1");
- response.setHeader("Content-disposition", "attachment; filename=" + sheetName + ".xls");
- response.setContentType("application/msexcel");
- wb.write(output);
- output.close();
- }
cell 数据样式: List list=new ArrayList<>(); list.add("1“);。。。。。
cellData中Object【】数据样式 obj1,obj2,obj3. PS:obj的数组长度应该与cells的长度是一样的。
结果样式:
自动生成Excel 报表工具类的更多相关文章
- 使用POI做的一个生成Excel的工具类。包含了导出Excel和解析Excel方法
PoiExcelUtils.java /** * */ package com.common.office; import java.io.File; import java.io.FileInput ...
- python自动生成excel报表
1.将SQL语句查询的内容,直接写入到excel报表中,以下为全部脚本.要求:此版本必须运维在windows平台,并且安装了excel程序,excel版本不限. python版本为2.7 if b 判 ...
- java自动机器人自动生成修姓名工具类
public class GenerateName { public static String getName() { Random random = new Random(); String[] ...
- 下载数据到Excel,工具类
使用反射将model数据下载到Excel中 package test.upload.utils; import java.lang.reflect.Method; import java.math.B ...
- 让Visual Studio 2013为你自动生成XML反序列化的类
Visual Sutdio 2013增加了许多新功能,其中很多都直接提高了对代码编辑的便利性.如: 1. 在代码编辑界面的右侧滚动条上显示不同颜色的标签,让开发人员可以对所编辑文档的修改.查找.定位情 ...
- 自动生成XML反序列化的类
原文地址:http://www.cnblogs.com/jaxu/p/3632077.html Visual Sutdio 2013增加了许多新功能,其中很多都直接提高了对代码编辑的便利性.如: ...
- 使用POI生成Excel报表
先把报表模板截图贴上来 下面是POI编写的报表生成类ExcelReport.java package com.jadyer.report; import java.io.FileNotFoundExc ...
- Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类
Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ©Copyright 蕃薯耀 20 ...
- java生成excel报表文件
此次简单的操作将数据从数据库导出生成excel报表以及将excel数据导入数据库 首先建立数据库的连接池: package jdbc; import java.io.FileInputStream; ...
随机推荐
- mongo java 踩坑记
为什么会有这么多坑 1. Java会把 id:String = "合法ObjectId" 好心好意的 转为 _id:ObjectId 类型. 2. 为了避免第1点, 我定义了 ...
- ubuntu系统升级和其他相关操作记录
之前在openstack中安装了ubuntu 12.04虚拟机,版本较低,需要升级为高版本.下面分享下升级过程: ubuntu系统升级操作:$ cat /etc/issueUbuntu 12.04.5 ...
- git-两小时简单使用教程
两小时学会Git玩转Github 1. 了解Git和Github 1.1什么是Git Git是一个免费.开源的版本控制软件 1.2什么是版本控制系统 版本控制是一种记录一个或若干个文件内容变化,以便将 ...
- 个人博客作业_week7
心得 在为期将近一个月的团队编程中,给我感受最深的是敏捷开发和团队中队员之间的互补. 在最初的软件开发中,由于以前没有这方面的经验,所以并没有很大的进展.在慢慢过度中,我们找到了自己的节奏感,大家各自 ...
- 个人作业Week1
一.<构建之法>提问 1.需求是什么?需求的规范需要明确吗? 2.一个人开发效率非常高,多人开发,个人效率随团队人数上升而直线下降,我们一般需要将大项目拆为小项目,使协作耦合产生的效率负影 ...
- 《蹭课神器》Alpha版使用说明
<蹭课神器>是一款方便大学生蹭课的软件,目前实现了查询课表的功能,还没有实现搜索和提醒的功能.有待进一步的开发! 登录之后点击查询操作,查询课表. 课表显示如下
- 网络:Xen理解
Xen是由剑桥大学计算机实验室开发的一个开源项目.是一个直接运行在计算机硬件之上的用以替代操作系统的软件层,它能够在计算机硬件上并发的运行多个客户操作系统(Guest OS). 一.Xen虚拟化类型 ...
- 小学四则运算APP 第三阶段冲刺-第一天
团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第三次冲刺阶段时间:12.12~12.19 本次发布的是音乐播放功能,可以根据用户需求一边播放音乐一边做题,也拥有暂停播放音乐的功能,增强 ...
- I/O(输入/输出)
1.创建引用ObjectInputStream ois =null; ObjectOutputStream oos = null; ByteArrayInputStream bais = null; ...
- sqlalchemy orm 操作 MySQL
一.ORM介绍 orm英文全称object relational mapping,是对象映射关系程序,简单来说类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为了 ...