java复合表头_Java中使用 poi 导出复合表头(合并表头)

这是一个Java工具类,用于利用Apache POI库导出带有复合表头(合并表头)的Excel文件。方法支持将数据转换为时间格式,并处理小于两行的表头合并操作。类中包含静态方法处理导出过程,包括设置表头、合并单元格、写入数据等步骤。
摘要由CSDN通过智能技术生成

packageorg.alanlau.common.util;importorg.apache.commons.fileupload.disk.DiskFileItem;importorg.apache.commons.fileupload.disk.DiskFileItemFactory;importorg.apache.commons.lang3.time.DateFormatUtils;import org.apache.poi.ss.usermodel.*;importorg.apache.poi.ss.util.CellRangeAddress;importorg.apache.poi.ss.util.RegionUtil;importorg.apache.poi.xssf.usermodel.XSSFClientAnchor;importorg.apache.poi.xssf.usermodel.XSSFWorkbook;importorg.apache.tomcat.util.http.fileupload.IOUtils;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.web.multipart.MultipartFile;importorg.springframework.web.multipart.commons.CommonsMultipartFile;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.io.UnsupportedEncodingException;importjava.net.URLEncoder;importjava.time.LocalDateTime;importjava.time.format.DateTimeFormatter;importjava.util.Date;importjava.util.HashMap;importjava.util.List;importjava.util.Map;/*** 支持复合表头导出的Excel工具类

*

*@authorliukun

*@version1.0

* @date 2020/2/18 20:22*/

public classExcelUtils {privateExcelUtils() {throw new UnsupportedOperationException("initialization is prohibited...");

}private static Logger logger = LoggerFactory.getLogger(ExcelUtils.class);/*** 图片*/

public static classImage {private byte[] imageData;public Image(byte[] imageData) {this.imageData =imageData;

}public byte[] getImageData() {returnimageData;

}

}/*** 导出(目前仅支持小于两行表头的合并操作)

*@paramrealName 导出文件名

*@paramdata 导出数据

*@paramfields 导出字段,比如 date|时间,firstHeader|表头1,secondHeader|表头2,sub001|编号-0001|子标题1,sub002|编号-0001|子标题2,sub003|编号-0001|子标题3,sub004|编号-0001|子标题4,remark|备注*/

public static void export(HttpServletResponse response, String realName, List>data, String fields) {

String fileName= realName + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd_HHmmss")) + ".xlsx";

writeFileToResponse(construct(fields, data, fileName), response);

}/*** 导出并转换时间格式(目前仅支持小于两行表头的合并操作)

*@paramrealName 导出文件名

*@paramdata 导出数据

*@paramfields 导出字段,比如 date|时间,firstHeader|表头1,secondHeader|表头2,sub001|编号-0001|子标题1,sub002|编号-0001|子标题2,sub003|编号-0001

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值