您当前的位置: 首页 >  小志的博客

poi导出excel工具类实例

小志的博客 发布时间:2018-06-19 14:32:53 ,浏览量:4

 poi导出excel需要引入的三个jar包:poi-3.13.jar;poi-ooxml-3.13.jar;fastjson-1.2.12.jar

package com.cn;

import java.io.IOException;
import java.io.OutputStream;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletOutputStream;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.streaming.SXSSFCell;
import org.apache.poi.xssf.streaming.SXSSFRow;
import org.apache.poi.xssf.streaming.SXSSFSheet;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
/**
 * poi导出Excel 2007 OOXML (.xlsx)格式  工具类
 */

public class ExcelUtil{

     public static String NO_DEFINE = "no_define";//未定义的字段

     public static String DEFAULT_DATE_PATTERN="yyyy-MM-dd";//默认日期格式

     public static int DEFAULT_COLOUMN_WIDTH = 17;
      /**
 * 导出Excel 2007 OOXML (.xlsx)格式
 * @param title 标题行
 * @param headMap 属性-列头
 * @param jsonArray 数据集
 * @param datePattern 日期格式,传null值则默认 年月日
 * @param colWidth 列宽 默认 至少17个字节
 * @param out 输出流
 */

 public static void exportExcelX(String title,Map headMap,JSONArray jsonArray,

                     String datePattern,int colWidth, OutputStream out) {

       if(datePattern==null) datePattern = DEFAULT_DATE_PATTERN;
       // 声明一个工作薄
       SXSSFWorkbook workbook = new SXSSFWorkbook(1000);//缓存
       workbook.setCompressTempFiles(true);
        //表头样式
       CellStyle titleStyle = workbook.createCellStyle();
       titleStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
       Font titleFont = workbook.createFont();
       titleFont.setFontHeightInPoints((short) 20);
       titleFont.setBoldweight((short) 700);
       titleStyle.setFont(titleFont);
       // 列头样式
       CellStyle headerStyle = workbook.createCellStyle();
       //headerStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
       headerStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
       headerStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
       headerStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
       headerStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
       headerStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
       Font headerFont = workbook.createFont();
       headerFont.setFontHeightInPoints((short) 12);
       headerFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
       headerStyle.setFont(headerFont);
       // 单元格样式
       CellStyle cellStyle = workbook.createCellStyle();
       //cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
       cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
       cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
       cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
       cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
       cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
       cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
       Font cellFont = workbook.createFont();
       cellFont.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
       cellStyle.setFont(cellFont);
       // 生成一个(带标题)表格
       SXSSFSheet sheet = workbook.createSheet();
       //设置列宽
       int minBytes = colWidth
关注
打赏
查看更多评论

小志的博客

暂无认证

  • 4浏览

    0关注

    1100博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录