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

文章展示了如何在Java中利用Maven引入ApachePOI库来创建Excel工作簿,包括设置工作表、创建行列、合并单元格以及通过HTTP响应返回文件流供前端下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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");
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值