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 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) 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 tmpList = null;

tmpList = (List) 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) 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导出类_java导出excel工具类相关推荐

  1. java获取excle表格对象_Java使用excel工具类导出对象功能示例

    本文实例讲述了Java使用excel工具类导出对象功能.分享给大家供大家参考,具体如下: package com.gcloud.common; import org.apache.poi.ss.use ...

  2. java 静态类 安全_Java静态static工具类线程安全问题研究

    针对静态方法有以下一些前提: 静态方法和实例方法的区别是静态方法只能引用静态变量,静态方法通过类名来调用,实例方法通过对象实例来调用 每个线程都有自己的线程栈,栈与线程同时创建,每一个虚拟机线程都有自 ...

  3. java前补零工具类_java生成编码工具类,不足补0

    ~~~~~ 小小工具类!你值得拥有 简单粗暴,直接上代码 import java.text.NumberFormat; /** * @author: Abner * @description: 编码工 ...

  4. java时间日期工具类_java日期处理工具类

    java日期处理工具类 import java.text.DecimalFormat; import java.text.ParsePosition; import java.text.SimpleD ...

  5. java 日期处理工具类_Java日期处理工具类DateUtils详解

    本文实例为大家分享了Java日期处理工具类DateUtils的具体代码,供大家参考,具体内容如下 import java.sql.Timestamp; import java.text.ParseEx ...

  6. java时间随机数_java开发代码工具类(时间戳/随机数/日期等)

    简介 java开发代码工具类,提高开发效率,持续更新~ 实践 package com.springboot.sixmonth.common.util; import java.math.BigInte ...

  7. java计算工作日_Java工作日计算工具类

    工作日计算工具类 主要功能:传入两个日期,返回这两个日期之间有多少个工作日. 思路: 预先设置好一定年份范围内的节假日.补休到map里.(这里暂时只设置了2017 - 2018年的) 将这个年份范围内 ...

  8. java签名软件_Java实现签名工具类

    一 点睛 签名和验证签名常常用于网络安全,在此提供一个工具类. 二 代码 package com.imooc.demo.common.util; import org.apache.commons.c ...

  9. java word生成_JAVA生成WORD工具类

    该方法借助freemarker的JAR包即可. 参考: 所需工具: 步骤: 1.在word中编辑好模版样式,设置好占位符,注意图片最好先黏上去 2.在word中,文件-另存为-XML格式 3.使用工具 ...

  10. java escape工具类_java开发常用工具类

    在Java中,,工具类定义了一组公共方法.你把你的类继承这些类或者实现这些接口,就可以使用这些类的方法了.下面给大家介绍一下十六种最常用的java开发常用工具类. 一. org.apache.comm ...

最新文章

  1. 吴恩达教你读论文:持续而缓慢的学习,才是正道
  2. Web前端工程师应该懂的的知识点——HTML/CSS
  3. 数据结构之——选择排序
  4. UA MATH563 概率论的数学基础 中心极限定理20 弱收敛的性质
  5. ExtAspNet 主题赏析 - 7款 超炫!
  6. boost::hana::equal用法的测试程序
  7. 01_pandas安装、Series、DataFrame、head、tail、 index、columns、to_numpy、describe、置换数据、sort_index、sort_values
  8. 系统页面升级系统中_国产系统哪家强?华为EMUI系统大升级,拿下最强指日可待...
  9. Python找出某元素的索引下标
  10. SQL server 2012序列号 注册码 z
  11. swift oc UIimage 和 NSString 互相转换
  12. Electron + React 跨平台桌面应用部署及发布
  13. javascript XMLHttpRequest实现下载文件
  14. dell N4050声卡驱动安装后仍然没有声音,改装XP完美驱动IDT声卡!实测可用!
  15. 下载SE78里面的图片
  16. Excel 操作 第一篇 行列技巧
  17. 全球智能制造产业联盟落地深圳
  18. 【STL】C++ STL超全总结
  19. Makefile中传递宏定义字符串给C
  20. 【仿真设计】仿真技术在智能制造中的作用;智能制造难点在模型,焦点在仿真;汽车行业CAE研究

热门文章

  1. web 埋点实现原理了解一下
  2. 学习Bootstrap知识记录点-----导航菜单操作
  3. JAVA 基础 (一)
  4. 引入JQuery提示:Uncaught ReferenceError: $ is not defined
  5. Windows Thin PC中文化
  6. 看完你会为自己哭,或者为他们哭
  7. 中兴 20 5g音频测试软件,中兴手机5G测试视频:速率接近2Gbps!
  8. linux格式化大于2t硬盘分区,linux下大于2tb硬盘格式化及挂载,linux下大于2t的分区方法,linux gpt分区表 管理 自动挂载分区...
  9. ip pim spare 源树 和 共享树_iPhone通过内置应用与电脑传输共享文件指南
  10. 【ABAP】销售订单Billing Plan创建