java导出excel须要使用HSSFWorkbook这个类,须要导入poi-3.6-20091214.jar

工具类调用例如以下:

package com.qlwb.business.util;

import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.List; import javax.servlet.http.HttpServletResponse; import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.util.CellRangeAddress; /**
* 导出报表的公共类,提供公共的导出报表的方法
* @Copyright: Copyright (c) 2015
* @Company:
* @author 鹿伟伟
*
*/
public class ExportExcel { static boolean tempDirflag1 = true;
static boolean tempDirflag2 = true; /**
* 依据传入的集合数据生成报表的方法
*
* @param list
* 报表标题表头及数据封装的list,格式:list的第一条数据是标题。String类型;第二条数据是表头列表,List类型;从第三条開始是数据列表
* ,List类型
* @param filename
* 报表excel的文件名称,不须要扩展名
* @param response
* HttpServletResponse
* @return 1表示成功 0表示失败
* @throws IOException
* @Create luweiwei 2015-08-18
* @change
*/
@SuppressWarnings("unchecked")
public static int createReport(List<Object> list, String filename,
HttpServletResponse response) throws IOException { // 数据list至少包含标题和表头
if (list.size() < 2) {
return 0;
} // 组装excel
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet(); // 设置Excel标题字体和样式
HSSFFont headFont = workbook.createFont();
headFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
headFont.setFontHeightInPoints((short) 20);
HSSFCellStyle headCellStyle = workbook.createCellStyle();
headCellStyle.setFont(headFont);
// headCellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
// headCellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
// headCellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
// headCellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
headCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
headCellStyle.setWrapText(true);
headCellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
// headCellStyle.setFillForegroundColor(GREEN_COLOR); // 设置Excel表头的字体和样式
HSSFFont thfont = workbook.createFont();
thfont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
HSSFCellStyle thCellStyle = workbook.createCellStyle();
thCellStyle.setFont(thfont);
thCellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
thCellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
thCellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
thCellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
thCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
thCellStyle.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);
thCellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); // 设置Excel内容的字体和样式
HSSFFont font = workbook.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
HSSFCellStyle titleCellStyle = workbook.createCellStyle();
titleCellStyle.setFont(font);
titleCellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
titleCellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
titleCellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
titleCellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
titleCellStyle.setAlignment(HSSFCellStyle.ALIGN_LEFT);
// titleCellStyle.setFillForegroundColor(GREEN_COLOR); // 单元格居左样式
HSSFCellStyle cellLeft = null; // 单元格居中样式
HSSFCellStyle cellCenter = null; // 单元格居右样式
HSSFCellStyle cellRight = null; // 单元格居左样式
cellLeft = workbook.createCellStyle();
cellLeft.setBorderLeft(HSSFCellStyle.BORDER_THIN);
cellLeft.setBorderTop(HSSFCellStyle.BORDER_THIN);
cellLeft.setBorderRight(HSSFCellStyle.BORDER_THIN);
cellLeft.setBorderBottom(HSSFCellStyle.BORDER_THIN);
cellLeft.setAlignment(HSSFCellStyle.ALIGN_LEFT); // 单元格居中样式
cellCenter = workbook.createCellStyle();
cellCenter.setBorderLeft(HSSFCellStyle.BORDER_THIN);
cellCenter.setBorderTop(HSSFCellStyle.BORDER_THIN);
cellCenter.setBorderRight(HSSFCellStyle.BORDER_THIN);
cellCenter.setBorderBottom(HSSFCellStyle.BORDER_THIN);
cellCenter.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 单元格居右样式
cellRight = workbook.createCellStyle();
cellRight.setBorderLeft(HSSFCellStyle.BORDER_THIN);
cellRight.setBorderTop(HSSFCellStyle.BORDER_THIN);
cellRight.setBorderRight(HSSFCellStyle.BORDER_THIN);
cellRight.setBorderBottom(HSSFCellStyle.BORDER_THIN);
cellRight.setAlignment(HSSFCellStyle.ALIGN_RIGHT); // 第一行
// 合并标题单元格
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0,
((List<String>) list.get(1)).size() - 1));
HSSFRow row = sheet.createRow(0);
row.setHeightInPoints(40);
HSSFCell cell = null;
cell = row.createCell(0);
cell.setCellStyle(headCellStyle);
cell.setCellValue((String) (list.get(0))); // 设置表头单元格
List<String> tmpList = null;
tmpList = (List<String>) list.get(1);
int rownum = sheet.getLastRowNum();
row = sheet.createRow(rownum + 1);
for (int i = 0; i < tmpList.size(); i++) {
sheet.setColumnWidth(i, 6000);
cell = row.createCell(i);
cell.setCellStyle(thCellStyle);
cell.setCellValue(tmpList.get(i));
} // 循环设置数据的单元格
for (int i = 2; i < list.size(); i++) {
tmpList = (List<String>) list.get(i);
rownum = sheet.getLastRowNum();
row = sheet.createRow(rownum + 1);
for (int j = 0; j < tmpList.size(); j++) {
cell = row.createCell(j);
cell.setCellStyle(titleCellStyle);
cell.setCellValue(tmpList.get(j));
}
}
response.setHeader("Content-disposition", "attachment; filename="
+ URLEncoder.encode(filename, "utf-8") + ".xls");
response.setContentType("application/msexcel;charset=utf-8");
OutputStream out = null;
try {
out = response.getOutputStream();
out.flush();
workbook.write(out);
} finally {
try {
if(out!=null){
out.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return 1;
}
}

java导出excel工具类的更多相关文章

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

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

  2. 导入导出Excel工具类ExcelUtil

    前言 前段时间做的分布式集成平台项目中,许多模块都用到了导入导出Excel的功能,于是决定封装一个ExcelUtil类,专门用来处理Excel的导入和导出 本项目的持久化层用的是JPA(底层用hibe ...

  3. javaEE开发之导出excel工具类

    web开发中,一个系统的普通需求也包含导出excel,一般採用POI做统计报表导出excel. 导出excel工具类: import java.io.FileOutputStream; import ...

  4. java 解析excel工具类

      java 解析excel工具类 CreateTime--2018年3月5日16:48:08 Author:Marydon ReadExcelUtils.java import java.io.Fi ...

  5. java操作excel 工具类

    java操作excel 可参考https://blog.csdn.net/xunwei0303/article/details/53213130 直接上代码: 一.java生成excel文件: pac ...

  6. Java解析Excel工具类(兼容xls和xlsx)

    依赖jar <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml&l ...

  7. Java XSSF 导出excel 工具类

    参数解释: title:导出excel标题.headers 导出到excel显示的列头. columns 对应数据库字段 .list 导出数据1.pox中添加依赖 <dependency> ...

  8. 导出Excel工具类

    import java.io.OutputStream; import java.lang.reflect.Method; import java.text.SimpleDateFormat; imp ...

  9. 使用POI导出EXCEL工具类并解决导出数据量大的问题

    POI导出工具类 工作中常常会遇到一些图表需要导出的功能,在这里自己写了一个工具类方便以后使用(使用POI实现). 项目依赖 <dependency> <groupId>org ...

随机推荐

  1. 3分钟搞定SpringBoot+Mybatis+druid多数据源和分布式事务

    文章来自: https://blog.csdn.net/qq_29242877/article/details/79033287 在一些复杂的应用开发中,一个应用可能会涉及到连接多个数据源,所谓多数据 ...

  2. Visual Studio 2013 智能提示功能消失解决办法

    Visual Studio 2013中,智能提示功能突然用不了,查了一下,使用命令行重置VS的方法解决了这个问题.步骤如下: 开始菜单 -->所有程序-->Visual Studio 20 ...

  3. [转]Haproxy 1.5.0 正式发布,Web 负载均衡

    From : http://www.oschina.net/news/53070/haproxy-1-5-0 经过 4 年的不懈努力,HAProxy 1.5.0 终于发布了! 相对于 1.4 版本来说 ...

  4. Windows8.1 关机异常的解决

    昨天电脑无法正常关机,关机后风扇仍然转,硬盘也在读写,等了很长时间都没有完全关机,只能强制关机.以前其他系统也遇到过这个问题,因此考虑还是驱动问题.回想了下之前装过VirtualBox,考虑到应该是V ...

  5. 第二章 logstash - 输出插件之redis与es

    最常用的两个输出插件: redis es 一.redis 1.用法 output { redis{ batch => false batch_events => 50 batch_time ...

  6. android adb源码分析(1)

    ADB是Android debug bridge的缩写,它使用PC机可以通过USB或网络与android设备通讯. adb的源码位于system/core/adb目录下,先来看下编译脚本Android ...

  7. 漂亮的CSS3提交意见输入框样式

    做了个输入框样式,如图: CSS代码如下: <喎�"http://www.2cto.com/kf/ware/vc/" target="_blank" cl ...

  8. OpenGL® ES 3.0 Programming Guide - Book Website

    OpenGL® ES 3.0 Programming Guide - Book Website http://opengles-book.com sample codes in GitHub: htt ...

  9. [Git] Undo my last commit and split it into two separate ones

    When you accidentally committed some changes to your branch you have various possibilities to “undo” ...

  10. Dijkstra和Floyd_warshall

    import java.util.Arrays; import java.util.Scanner; /*题目描写叙述: 有n个城市.城市间有m条道路.每条道路都有长度d.给你起点城市s终点终点t.要 ...