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的更多相关文章

  1. 重构:以Java POI 导出EXCEL为例

    重构 开头先抛出几个问题吧,这几个问题也是<重构:改善既有代码的设计>这本书第2章的问题. 什么是重构? 为什么要重构? 什么时候要重构? 接下来就从这几个问题出发,通过这几个问题来系统的 ...

  2. Java POI 导出EXCEL经典实现 Java导出Excel

    转自http://blog.csdn.net/evangel_z/article/details/7332535 在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者 ...

  3. 重构:以Java POI 导出EXCEL为例2

    前言 上一篇博文已经将一些对象抽象成成员变量以及将一些代码块提炼成函数.这一节将会继续重构原有的代码,将一些函数抽象成类,增加成员变量,将传入的参数合成类等等. 上一篇博文地址:http://www. ...

  4. java:POI导出excel

    POI是一个开源项目,专用于java平台上操作MS OFFICE,企业应用开发中可用它方便导出Excel. 下面是使用示例: 1.maven中先添加依赖项 <dependency> < ...

  5. Java POI 导出excel表

    1.首先下载poi-3.6-20091214.jar,下载地址如下: http://download.csdn.net/detail/evangel_z/3895051 2.Student.java ...

  6. java POI导出Excel文件数据库的数据

    在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作.这里我简单实现导出Excel文件. POI jar ...

  7. Java POI导出Excel不弹框选择下载路径(下载文件不选择下载路径,默认) Chrome

    在Chrome浏览器中,Java导出Excel文件时,浏览器弹出提示框,需要选择下载路径 在Chrome中的高级设置中,把“下载前询问每个文件的保存位置”去掉就解决了 DEEPLOVE(LC)

  8. JAVA POI导出EXCEL 动态表头、多级表头、动态数据

    导出Excel文件是业务中经常遇到的需求,以下是经常遇到的一些问题: 1,导出中文文件名乱码 String filename = "sheet1";response.setChar ...

  9. java poi导出EXCEL xls文件代码

    String _currentPage = request.getParameter("currentPage"); Integer currentPage = 0; if(_cu ...

  10. Java POI 导出EXCEL经典实现

    import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; i ...

随机推荐

  1. Link-Cut-Tree题目泛做(为了对应自己的课件)

    题目1:BZOJ 2049 洞穴勘测 #include <bits/stdc++.h> #define L(x) c[x][0] #define R(x) c[x][1] using na ...

  2. 多台服务之间共享Session

    一.问题:为了满足足够大的应用,满足更多的客户,就需要架设N台Web服务器(N>=2),在多台Web服务器的情况下,就会涉及到一个问题:用户登陆一台服务器以后,如果在跨越到另一台服务器的时候能够 ...

  3. CSS3前缀

    我们经常会遇到写的有些css3属性会在不同的浏览器下呈现不兼容的情况,那是因为浏览器内核不同而导致的兼容性问题. 首先我们需要先了解一下目前的几种现代浏览器的内核,主流内容主要有Mozilla(熟悉的 ...

  4. wine下汉字方块解决

    1.修改字体 首先,下载一个字体,例如win下的新宋体 其次, mkdir /usr/share/fonts/windows mv simsun.ttc /usr/share/fonts/window ...

  5. 关于hibernate非主键多对一关联

    一直以来,用hibernate做多对一时,关联的都是主键,今天,同事设计的表,关联的却不是主键,这下麻烦了,hibernate的many-to-one默认关联的都是主键,原来,hibernate提供了 ...

  6. 大端模式&小端模式、主机序&网络序、入栈地址高低问题

    一.大端模式&小端模式 所谓的“大端模式”,是指数据的低位(就是权值较小的后面那几位)保存在内存的高地址中,而数据的高位,保存在内存的低地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处 ...

  7. QAction系列详解

    QAction系列详解 一.QAction类详解 [详细描述] QAction类提供了抽象的用户界面action,这些action可以被放置在窗口部件中.        应用程序可以通过菜单,工具栏按 ...

  8. T-SQL 创建、修改、删除数据库,表语法

    CREATE 语句 CREATE语句的开头都是一样的,然后是特定的细节. CREATE <object type> <object name> 一.CREATE DATABAS ...

  9. 编译boost python模块遇到的错误:../../libraries/boost_1_44_0/boost/python/detail/wrap_python.hpp:75:24: fatal error: patchlevel.h: No such file or directory

    就是遇到类似标题上面的错误. 原因是没有安装对应python的python-dev依赖,不然编译到boost python模块的时候就会出错. 所以解决方案是sudo apt-get install ...

  10. bzoj3407 [Usaco2009 Oct]Bessie's Weight Problem 贝茜的体重问题

    Description     贝茜像她的诸多姊妹一样,因为从约翰的草地吃了太多美味的草而长出了太多的赘肉.所以约翰将她置于一个及其严格的节食计划之中.她每天不能吃多过H(5≤日≤45000)公斤的干 ...