java导出excel封装成工具类
来源:互联网 发布:淘宝没有访客怎么办 编辑:程序博客网 时间:2024/05/21 16:42
开发一些程序中往往遇到数据导出excel的需求,司空见惯网上很多例子,下面展示一个通用工具类。
ExportExcel.java
package cn.hx.as.util;import java.io.File;import java.io.OutputStream;import java.sql.Timestamp;import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;import java.lang.reflect.Field;import javax.servlet.http.HttpServletResponse;import jxl.Workbook;import jxl.format.Alignment;import jxl.format.Border;import jxl.format.BorderLineStyle;import jxl.format.VerticalAlignment;import jxl.write.Label;import jxl.write.WritableCellFormat;import jxl.write.WritableFont;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;/*** * @author ardp */public class ExportExcel {/*************************************************************************** * @param fileName * EXCEL文件名称 * @param listTitle * EXCEL文件第一行列标题集合 * @param listContent * EXCEL文件正文数据集合 * @return */public final static String exportExcel(String fileName, String[] Title,Object listContent, HttpServletResponse response,String title,Integer colWidth) {String result = "系统提示:Excel文件导出成功!";// 以下开始输出到EXCELtry {// 定义输出流,以便打开保存对话框______________________beginOutputStream os = response.getOutputStream();// 取得输出流response.reset();// 清空输出流response.setHeader("Content-disposition", "attachment; filename="+ new String(fileName.getBytes("GB2312"), "ISO8859-1"));// 设定输出文件头response.setContentType("application/msexcel");// 定义输出类型// 定义输出流,以便打开保存对话框_______________________end/** **********创建工作簿************ */WritableWorkbook workbook = Workbook.createWorkbook(os);/** **********创建工作表************ */WritableSheet sheet = workbook.createSheet("Sheet1", 0);/** **********设置纵横打印(默认为纵打)、打印纸***************** */jxl.SheetSettings sheetset = sheet.getSettings();sheetset.setProtected(false);/** ************设置单元格字体************** */WritableFont NormalFont = new WritableFont(WritableFont.ARIAL, 10);WritableFont BoldFont = new WritableFont(WritableFont.ARIAL, 10,WritableFont.BOLD);/** ************以下设置三种单元格样式,灵活备用************ */// 用于标题居中WritableCellFormat wcf_center = new WritableCellFormat(BoldFont);wcf_center.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐wcf_center.setAlignment(Alignment.CENTRE); // 文字水平对齐wcf_center.setWrap(false); // 文字是否换行// 用于正文居左WritableCellFormat wcf_left = new WritableCellFormat(NormalFont);wcf_left.setBorder(Border.NONE, BorderLineStyle.THIN); // 线条wcf_left.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐wcf_left.setAlignment(Alignment.LEFT); // 文字水平对齐wcf_left.setWrap(true); // 文字是否换行/** ***************以下是EXCEL单元格宽度,省略********************* *//** ***************以下是EXCEL开头大标题,暂时省略********************* */ if(colWidth == null){ colWidth=21; } sheet.mergeCells(0, 0, colWidth, 0); sheet.addCell(new Label(0, 0, title, wcf_center));/** ***************以下是EXCEL第一行列标题********************* */for (int i = 0; i < Title.length; i++) {sheet.setColumnView(i, Title.length+6);//设置宽度sheet.addCell(new Label(i, 1, Title[i], wcf_center));}/** ***************以下是EXCEL正文数据********************* */Field[] fields = null;int i = 2;for (Object obj : (List)listContent) {fields = obj.getClass().getDeclaredFields();int j = 0;for (Field v : fields) {v.setAccessible(true);Object va = v.get(obj);if (va == null) {va = "";}SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");if(va instanceof Timestamp||va instanceof Date){sheet.addCell(new Label(j, i, sf.format(va), wcf_left));}else{sheet.addCell(new Label(j, i, va.toString(), wcf_left));}j++;}i++;}/** **********将以上缓存中的内容写到EXCEL文件中******** */workbook.write();/** *********关闭文件************* */workbook.close();} catch (Exception e) {result = "系统提示:Excel文件导出失败,原因:" + e.toString();System.out.println(result);e.printStackTrace();}return result;}/*************************************************************************** * @param fileName * EXCEL文件名称 * @param listTitle * EXCEL文件第一行列标题集合 * @param listContent * EXCEL文件正文数据集合 * @return */public final static String exportExcel1(File file,String fileName, String[] Title,Object listContent, HttpServletResponse response,String title,Integer colWidth) {String result = "系统提示:Excel文件导出成功!";// 以下开始输出到EXCELtry {// 定义输出流,以便打开保存对话框______________________beginOutputStream os = response.getOutputStream();// 取得输出流response.reset();// 清空输出流response.setHeader("Content-disposition", "attachment; filename="+ new String(fileName.getBytes("GB2312"), "ISO8859-1"));// 设定输出文件头response.setContentType("application/msexcel");// 定义输出类型// 定义输出流,以便打开保存对话框_______________________end/** **********创建工作簿************ */WritableWorkbook workbook = Workbook.createWorkbook(file);//WritableWorkbook workbook = Workbook.createWorkbook(os);/** **********创建工作表************ */WritableSheet sheet = workbook.createSheet("Sheet1", 0);/** **********设置纵横打印(默认为纵打)、打印纸***************** */jxl.SheetSettings sheetset = sheet.getSettings();sheetset.setProtected(false);/** ************设置单元格字体************** */WritableFont NormalFont = new WritableFont(WritableFont.ARIAL, 10);WritableFont BoldFont = new WritableFont(WritableFont.ARIAL, 10,WritableFont.BOLD);/** ************以下设置三种单元格样式,灵活备用************ */// 用于标题居中WritableCellFormat wcf_center = new WritableCellFormat(BoldFont);wcf_center.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐wcf_center.setAlignment(Alignment.CENTRE); // 文字水平对齐wcf_center.setWrap(false); // 文字是否换行// 用于正文居左WritableCellFormat wcf_left = new WritableCellFormat(NormalFont);wcf_left.setBorder(Border.NONE, BorderLineStyle.THIN); // 线条wcf_left.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐wcf_left.setAlignment(Alignment.LEFT); // 文字水平对齐wcf_left.setWrap(true); // 文字是否换行/** ***************以下是EXCEL单元格宽度,省略********************* *//** ***************以下是EXCEL开头大标题,暂时省略********************* */ if(colWidth == null){ colWidth=21; } sheet.mergeCells(0, 0, colWidth, 0); sheet.addCell(new Label(0, 0, title, wcf_center));/** ***************以下是EXCEL第一行列标题********************* */for (int i = 0; i < Title.length; i++) {sheet.setColumnView(i, Title.length+6);//设置宽度sheet.addCell(new Label(i, 1, Title[i], wcf_center));}/** ***************以下是EXCEL正文数据********************* */Field[] fields = null;int i = 2;for (Object obj : (List)listContent) {fields = obj.getClass().getDeclaredFields();int j = 0;for (Field v : fields) {v.setAccessible(true);Object va = v.get(obj);if (va == null) {va = "";}SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");if(va instanceof Timestamp||va instanceof Date){sheet.addCell(new Label(j, i, sf.format(va), wcf_left));}else{sheet.addCell(new Label(j, i, va.toString(), wcf_left));}j++;}i++;}/** **********将以上缓存中的内容写到EXCEL文件中******** */workbook.write();/** *********关闭文件************* */workbook.close();} catch (Exception e) {result = "系统提示:Excel文件导出失败,原因:" + e.toString();System.out.println(result);e.printStackTrace();}return result;}}
public void createProudctPriceExcel(HttpServletRequest request,HttpServletResponse response){List<ProductExl> excellist=new ArrayList<ProductExl>();//Map<String, String> map=(Map<String, String>)productPrices;//System.out.println("size"+map.size());ProductExl productExl=null;//Set<String> keys = map.keySet();for(int i=0;i<productPrices.size();i++){productExl=new ProductExl();//System.out.println(productPrices.get(i));Map<String, Object> map = (Map<String, Object>)productPrices.get(i);Set<String> keys = map.keySet();for(String key:keys){if(key.equals("pname")){productExl.setPname(map.get(key).toString());}if(key.equals("total")){productExl.setTotal(map.get(key).toString());}}excellist.add(productExl);}String[] Title = { "商品名称","产品总价(单位:元)"};ExportExcel.exportExcel(new Date().getTime() + ".xls", Title, excellist,response, "商品分类数量报表", 1);}
所需jar包:jxl-2.6.6.jar
阅读全文
0 0
- java导出excel封装成工具类
- Poi实现Excel导出工具类封装
- Poi实现Excel导出工具类封装
- Excel导入导出封装工具类
- java封装导出Excel
- Java导出Excel工具类
- Java导出Excel工具类
- java导出Excel工具类
- java导出excel工具类
- java excel导出工具类
- java excel导出工具类
- java导出excel工具类
- java简易excel导入导出工具(封装POI)
- java简易excel导入导出工具(封装POI)
- Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类
- JAVA语言工具类封装-基于poi的excel导出功能
- JAVA语言工具类封装-基于poi的excel导出功能
- java导出excel,导入excel,导出csv工具类整理
- 大小写字母转化
- Fiddler修改客户端发出的请求
- 字符串逆序
- 【NOIP2017模拟】猫&种花
- 创建tomcat的服务,删除服务,通过服务来启动项目
- java导出excel封装成工具类
- 580
- IDEA配置JavaWeb项目
- JAVA中方法的值传递对参数(可变和不可变)的影响
- MySQL初步学习5:常用语句
- php操作redis服务之Predis
- 2017年11月9日训练笔记
- 关于itchat学习的一些资料
- 基于Cookies的会话跟踪技术