java poi 导出excel
poi的jar下载地址:http://poi.apache.org/
下载后会有很多jar,但是如果只是简单的excel报表的话,导入一个poi-版本号-日期.jar就可以了。
导出代码:
private void outputExcel(String queryDate, String[] headers,
List<List<String>> diaochas, HttpServletRequest request,
HttpServletResponse response) throws IOException {
HSSFWorkbook workbook = new HSSFWorkbook();
//createSheet(excel工作表名)
HSSFSheet sheet = workbook.createSheet(queryDate);
//下面是设置excel表中标题的样式
HSSFCellStyle title_style = workbook.createCellStyle();
title_style.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
title_style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
title_style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
title_style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
title_style.setBorderRight(HSSFCellStyle.BORDER_THIN);
title_style.setBorderTop(HSSFCellStyle.BORDER_THIN);
title_style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
HSSFFont title_font = workbook.createFont();
title_font.setColor(HSSFColor.VIOLET.index);
title_font.setFontHeightInPoints((short) 12);
title_font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
title_style.setFont(title_font);
//内容的样式
HSSFCellStyle content_style = workbook.createCellStyle();
content_style.setFillForegroundColor(HSSFColor.LIGHT_YELLOW.index);
content_style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
content_style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
content_style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
content_style.setBorderRight(HSSFCellStyle.BORDER_THIN);
content_style.setBorderTop(HSSFCellStyle.BORDER_THIN);
content_style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
content_style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
HSSFFont content_font = workbook.createFont();
content_font.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
content_style.setFont(content_font);
//填充标题内容
HSSFRow row = sheet.createRow(0);
for (int i = 0; i < headers.length; i++) {
//设置标题的宽度自适应
sheet.setColumnWidth(i, headers[i].getBytes().length * 2 * 256);
HSSFCell cell = row.createCell(i);
cell.setCellStyle(title_style);
HSSFRichTextString text = new HSSFRichTextString(headers[i]);
cell.setCellValue(text);
}
//填充内容 囧。。。偷懒没有建立对象,直接用List存放的数据。
for (int i = 0; i < diaochas.size(); i++) {
row = sheet.createRow(i + 1);
List<String> diaocha = diaochas.get(i);
for (int j = 0; j < diaocha.size(); j++) {
HSSFCell cell = row.createCell(j);
cell.setCellStyle(content_style);
HSSFRichTextString richString = new HSSFRichTextString(
diaocha.get(j));
cell.setCellValue(richString);
}
}
//这里调用reset()因为我在别的代码中调用了response.getWriter();
response.reset();
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition", "attachment;filename="
+ queryDate + ".xls");
OutputStream ouputStream = response.getOutputStream();
workbook.write(ouputStream);
ouputStream.flush();
ouputStream.close();
}
嗯 附加一个mysql函数获取年月的
date_format(formatdate,'%Y-%m')
最后提示一点是,在请求导出的时候,不能用ajax请求,会没有反映的。
java poi 导出excel的更多相关文章
- 重构:以Java POI 导出EXCEL为例
重构 开头先抛出几个问题吧,这几个问题也是<重构:改善既有代码的设计>这本书第2章的问题. 什么是重构? 为什么要重构? 什么时候要重构? 接下来就从这几个问题出发,通过这几个问题来系统的 ...
- Java POI 导出EXCEL经典实现 Java导出Excel
转自http://blog.csdn.net/evangel_z/article/details/7332535 在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者 ...
- 重构:以Java POI 导出EXCEL为例2
前言 上一篇博文已经将一些对象抽象成成员变量以及将一些代码块提炼成函数.这一节将会继续重构原有的代码,将一些函数抽象成类,增加成员变量,将传入的参数合成类等等. 上一篇博文地址:http://www. ...
- java:POI导出excel
POI是一个开源项目,专用于java平台上操作MS OFFICE,企业应用开发中可用它方便导出Excel. 下面是使用示例: 1.maven中先添加依赖项 <dependency> < ...
- Java POI 导出excel表
1.首先下载poi-3.6-20091214.jar,下载地址如下: http://download.csdn.net/detail/evangel_z/3895051 2.Student.java ...
- java POI导出Excel文件数据库的数据
在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作.这里我简单实现导出Excel文件. POI jar ...
- Java POI导出Excel不弹框选择下载路径(下载文件不选择下载路径,默认) Chrome
在Chrome浏览器中,Java导出Excel文件时,浏览器弹出提示框,需要选择下载路径 在Chrome中的高级设置中,把“下载前询问每个文件的保存位置”去掉就解决了 DEEPLOVE(LC)
- JAVA POI导出EXCEL 动态表头、多级表头、动态数据
导出Excel文件是业务中经常遇到的需求,以下是经常遇到的一些问题: 1,导出中文文件名乱码 String filename = "sheet1";response.setChar ...
- java poi导出EXCEL xls文件代码
String _currentPage = request.getParameter("currentPage"); Integer currentPage = 0; if(_cu ...
- Java POI 导出EXCEL经典实现
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; i ...
随机推荐
- 【solr专题之四】关于VelocityResponseWriter
一.关于Velocity的基本配置 在Solr中,可以以多种方式返回搜索结果,如单纯的文本回复(XML.JSON.CSV等),也可以返回velocity,js等格式.而VelocityResponse ...
- 三大主流ETL工具选型
ETL(extract, transform and load)产品乍看起来似乎并不起眼,单就此项技术本身而言,几乎也没什么特别深奥之处,但是在实际项目中,却常常在这个环节耗费太多的人力,而在后续的维 ...
- Scrapinghub执行spider抓取并显示图片
序 最近在学习Scrapy的时候发现一个很有意思的网站,可以托管Spider,也可以设置定时抓取的任务,相当方便.于是研究了一下,把其中比较有意思的功能分享一下: 抓取图片并显示在item里: 下面来 ...
- kafka-manager安装
代码地址: https://github.com/yahoo/kafka-manager 注意只能使用 Java 7!Java 6 编译不通过,Java 8 在运行的时候会报错:java.lang.U ...
- project euler 12 Highly divisible triangular number
Highly divisible triangular number Problem 12 The sequence of triangle numbers is generated by addin ...
- Python中for\while的用法
代码示例 board = [] for i in range(5): board.append(i) print board board = [] i = 0 while i < 5: boar ...
- C语言中的宏定义
目录(?)[-] 简单宏定义 带参数的宏 运算符 运算符 宏的通用属性 宏定义中圆括号 创建较长的宏 较长的宏中的逗号运算符 宏定义中的do-while循环do 空操作的定义 预定义宏 C语言中常用的 ...
- RabbitMQ中文入门教程
原文地址:http://adamlu.net/dev/2011/09/rabbitmq-get-started/ 这系列教程是翻译官方入门教程. 第一部分:Hello World第二部分:工作队列(W ...
- 2.x ESL第二章习题 2.8
题目 代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 3 ...
- UVA10487(二分)
Given is a set of integers and then a sequence of queries. A query gives you a number and asks to fin ...