java 合并行_Java 后端导出Excel ,复杂表头,合并行

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值