POI复杂表头及跨行跨列文件生成

1. Maven中添加POI

<dependency>
	<groupId>org.apache.poi</groupId>
	<artifactId>poi-ooxml</artifactId>
	<version>3.9</version>
</dependency>

2. 创建excel工作簿

HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("附件1");

3. 创建行列

跨行跨列合并使用(需在创建单元格之前合并)
4个参数为(开始行, 开始列, 结束行, 结束列)
以下代码的结果为第一行中,第一列和第二列单元格合并

sheet.addMergedRegion(new Region(0, (short) 0, 0, (short) 1));

行数由0开始,表示创建第一行数据

HSSFRow row = sheet.createRow(0); 

列数由0开始,表示创建第一个单元格,并可设置单元格样式

HSSFCell  cell = row.createCell((short) 0);
cell.setCellValue(cellName1);
cell.setCellStyle(style);
  1. 文件流返回给前端
@RequestMapping("/exportFile")
@ResponseBody
public void exportFile(@RequestParam Map<String, Object> params, HttpServletResponse response){
    try {
        HSSFWorkbook wb = new HSSFWorkbook();
        HSSFSheet sheet = wb.createSheet("附件1");
		
		// 处理内容...

        String fileName= new String("抄码明细表.xlsx".getBytes("UTF-8"),"iso-8859-1");
        OutputStream output = response.getOutputStream();
        response.setHeader("Content-disposition","attachment; filename="+ fileName);
        response.setContentType("application/msexcel");
        wb.write(output);
        output.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
  1. 前端下载文件(get请求)
 var linkUrl = url;
 if (
   navigator.userAgent.indexOf("Chrome") > -1 &&
   navigator.userAgent.indexOf("Safari") > -1
 ) {
   var a = document.createElement("a");
   a.href = linkUrl;
   a.click();
 } else {
   window.open(linkUrl, "_blank");
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值