博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自动生成Excel 报表工具类
阅读量:4968 次
发布时间:2019-06-12

本文共 2237 字,大约阅读时间需要 7 分钟。

/** * 输出Excel文档 * * @param response * @param sheetName     文件名称 * @param firstCellTile 第一行的标题 * @param cells         列名集合 * @param cellData      每列数据集合,应该和列名对应起来 * @throws IOException */public static void createExcel(HttpServletResponse response, String sheetName, String firstCellTile,                               List
cells, List
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的长度是一样的。

结果样式:

转载于:https://www.cnblogs.com/leirenyuan/p/9141708.html

你可能感兴趣的文章
前端利器躬行记(5)——Git
查看>>
前端利器躬行记(6)——Fiddler
查看>>
每次阅读外文技术资料都头疼,终于知道原因了。
查看>>
zabbix短信网关调用问题总结
查看>>
130242014034-林伟领-实验一
查看>>
Forbidden You don't have permission to access / on this server.
查看>>
Windows server 2008 R2中安装MySQL !
查看>>
Intellij Idea新建web项目(转)
查看>>
raspberry 安装apache2,使其支持ssl ,并创建自签名证书
查看>>
Trie树:应用于统计和排序
查看>>
C语言结构体和函数
查看>>
[BZOJ3449] [Usaco2014 Feb]Secret Code
查看>>
XHTML与HTML区别
查看>>
软考-程序设计语言基础(编译原理)
查看>>
2016峰会:项目管理与高级项目管理(广州站)
查看>>
用JAVA编写浏览器内核之实现javascript的document对象与内置方法
查看>>
linux 命令之top
查看>>
有关远程设置的问题
查看>>
BZOJ 1800: [Ahoi2009]fly 飞行棋
查看>>
2019,2月份第三个星期,js小突破了一波,笔记
查看>>