packageorg.jeecg.common.util;importjava.io.ByteArrayInputStream;importjava.io.ByteArrayOutputStream;importjava.io.OutputStream;importjava.text.DecimalFormat;importjava.text.SimpleDateFormat;importjava.util.HashMap;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importjavax.servlet.ServletOutputStream;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.google.api.client.util.Lists;importorg.apache.poi.hssf.usermodel.HSSFCell;importorg.apache.poi.hssf.usermodel.HSSFCellStyle;importorg.apache.poi.hssf.usermodel.HSSFFont;importorg.apache.poi.hssf.usermodel.HSSFRow;importorg.apache.poi.hssf.usermodel.HSSFSheet;importorg.apache.poi.hssf.usermodel.HSSFWorkbook;importorg.apache.poi.hssf.util.CellReference;importorg.apache.poi.ss.usermodel.Cell;importorg.apache.poi.ss.usermodel.Row;importorg.apache.poi.ss.util.CellRangeAddress;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;/***
* excel 导出工具类
*@authorAdministrator
**/
public classExcelUtil {private static DecimalFormat df = new DecimalFormat("0");//默认单元格格式化日期字符串
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//格式化数字
private static DecimalFormat nf = new DecimalFormat("0.00");private final static Logger logger = LoggerFactory.getLogger(ExcelUtil.class);public static void export(List>list, String filename, HttpServletResponse response, String titles) {try{
response.setContentType("application/x-execl");
response.setHeader("Content-Disposition","attachment;filename=" + new String(filename.getBytes(), "ISO-8859-1"));
ServletOutputStream outputStream=response.getOutputStream();
exportExcel(list, filename, outputStream, titles);if (outputStream != null) {
outputStream.close();
}
}catch(Exception e) {
e.printStackTrace();
}
}/*** 数据导出公用方法*/
public static void exportExcel(List>list, String filename, ServletOutputStream outputStream, String titles) {try{
Map map1 = list.get(0);
StringBuilder sb= newStringBuilder();
String[] fields= titles.split(",");/*sb.append(title);
String[] fields = sb.toString().split(",");*/
//1、创建工作簿
HSSFWorkbook workbook = newHSSFWorkbook();//1.1、创建合并单元格对象
CellRangeAddress cellRangeAddress = new CellRangeAddress(0, 0, 0, fields.length - 1);//起始行号,结束行号,起始列号,结束列号
CellRangeAddress cellRangeAddress1 = new CellRangeAddress(1, 1, 0, fields.length - 1);//起始行号,结束行号,起始列号,结束列号
CellRangeAddress cellRangeAddress2 = new CellRangeAddress(1, 1, 7, 12);//起始行号,结束行号,起始列号,结束列号//1.2、头标题样式
HSSFCellStyle style1 = createCellStyle(workbook, (short) 18);//1.3、列标题样式
HSSFCellStyle style2 = createCellStyle(workbook, (short) 13);
String headRow=filename;//2、创建工作表
HSSFSheet sheet =workbook.createSheet(headRow);//2.1、加载合并单元格对象
sheet.addMergedRegion(cellRangeAddress);
sheet.addMergedRegion(cellRangeAddress1);
sheet.addMergedRegion(cellRangeAddress2);//sheet.addMergedRegion(cellRangeAddress4);//设置默认列宽
sheet.setDefaultColumnWidth(22);
sheet.setDefaultR