当前位置: 首页 > wzjs >正文

网站官网建设百度搜索热词排行榜

网站官网建设,百度搜索热词排行榜,宝安设计网站建设,网站建设的详细步骤方案简介 为了通过 EasyExcel 实现动态表头重命名&#xff0c;可以封装一个方法&#xff0c;传入动态的新表头名称列表&#xff08;List<String>&#xff09;&#xff0c;并结合 WriteHandler 接口来重命名表头。同时&#xff0c;通过 EasyExcel 将数据直接写入到输出流…

方案简介

为了通过 EasyExcel 实现动态表头重命名,可以封装一个方法,传入动态的新表头名称列表(List<String>),并结合 WriteHandler 接口来重命名表头。同时,通过 EasyExcel 将数据直接写入到输出流。

Powered by Moshow@https://zhengkai.blog.csdn.net/

核心实现说明

  1. 动态表头处理器:通过 DynamicHeaderWriteHandler 的构造方法接收表头列表,并在写入表头之前动态设置表头内容。

  2. 封装写入方法ExcelExportUtil 提供通用的导出方法,可以根据表头和数据生成 Excel 文件并写入到输出流。

  3. 直接写入输出流:通过 HttpServletResponse 将文件直接导出为响应内容,方便前端下载。

具体实现

1. 自定义动态表头处理器

我们实现一个动态表头处理器,将新表头通过构造方法传入。

import com.alibaba.excel.metadata.Head;
import com.alibaba.excel.write.handler.AbstractCellWriteHandler;
import org.apache.poi.ss.usermodel.Cell;import java.util.List;public class DynamicHeaderWriteHandler extends AbstractCellWriteHandler {private final List<String> newHeaders;// 构造方法传入动态表头列表public DynamicHeaderWriteHandler(List<String> newHeaders) {this.newHeaders = newHeaders;}@Overridepublic void beforeCellCreate(org.apache.poi.ss.usermodel.Workbook workbook,org.apache.poi.ss.usermodel.Sheet sheet,org.apache.poi.ss.usermodel.Row row,Head head,Integer columnIndex,Boolean isHead) {
​//Powered by Moshow@https://zhengkai.blog.csdn.net/​if (Boolean.TRUE.equals(isHead) && columnIndex < newHeaders.size()) {// 动态设置表头名称head.setHeadNameList(List.of(newHeaders.get(columnIndex)));}}
}

2. 封装写入方法

创建一个封装的方法,支持通过传入表头和数据,将结果直接输出到流中。

java

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.metadata.WriteSheet;import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;public class ExcelExportUtil {/*** 导出 Excel 表格** @param response  HttpServletResponse 响应* @param data      数据列表* @param headers   动态表头* @param fileName  文件名* @author ​Powered by Moshow@https://zhengkai.blog.csdn.net/*/public static void exportExcel(HttpServletResponse response, List<?> data, List<String> headers, String fileName) throws IOException {response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");response.setCharacterEncoding("utf-8");response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");// 创建动态表头处理器DynamicHeaderWriteHandler headerHandler = new DynamicHeaderWriteHandler(headers);// 写入数据到输出流EasyExcel.write(response.getOutputStream()).registerWriteHandler(headerHandler).head((Class<?>) data.get(0).getClass()) // 假设数据类已经标注了 @ExcelProperty.sheet("Sheet1").doWrite(data);}
}

3. 使用方法示例

在 Controller 中调用封装好的方法,传入动态表头和数据。

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;@RestController
public class ExcelExportController {@GetMapping("/export")public void export(HttpServletResponse response) throws IOException {//​Powered by Moshow@https://zhengkai.blog.csdn.net/
​// 模拟数据List<SampleData> data = new ArrayList<>();data.add(new SampleData("张三", 25, "北京"));data.add(new SampleData("李四", 30, "上海"));// 动态表头List<String> headers = List.of("姓名(新)", "年龄(新)", "地址(新)");// 导出 ExcelExcelExportUtil.exportExcel(response, data, headers, "示例文件");}// 数据类public static class SampleData {private String name;private Integer age;private String address;public SampleData(String name, Integer age, String address) {this.name = name;this.age = age;this.address = address;}// Getters 和 Setters 省略}
}

通过这种方式,你可以灵活设置动态表头,并实现直接导出到客户端的功能。

http://www.dtcms.com/wzjs/327783.html

相关文章:

  • 网站建设岗位说明书外链
  • 做网站图片素材线上职业技能培训平台
  • 建设门户网站的可行性分析seo研究中心好客站
  • 网站商业授权网络推广方式
  • copyright技术支持 东莞网站建设网络营销的八大职能
  • 专业网站制作软件域名注册 阿里云
  • 上传设计作品集的网站北京优化网站公司
  • wordpress企业网站源码汕头网站排名
  • 建设网站需要备案么培训方案
  • 电脑手机网站制作全国疫情最新报告
  • 建聊天网站cba排名
  • 九江做网站网络营销的特点有几个
  • 卯兔科技网站建设软件外包公司有哪些
  • 网站后台管理系统多少钱如何创建网站平台
  • 企业oa网站建设方案企业网络营销推广方案策划
  • 外国可以做站外推广的网站怎么推广网站
  • java做网站教程竞价托管哪家专业
  • 备案中又需要建设网站什么是电商平台推广
  • 现在建个企业网站要多少钱百度热搜关键词
  • 好网站建设公司收费济南网络优化厂家
  • h5小程序开发seo关键词排名优化方案
  • iis 部署wordpress免费seo快速排名工具
  • 做网站骗钱站外推广方式
  • wordpress如何弄添加框seo推广优化官网
  • 网站主机查询重庆seo
  • 完整网站模板下载seo 优化思路
  • 账号注册免费深圳百度快照优化
  • 政务网站优化seo刷关键词排名免费
  • 138ip域名查询网seo网站快速排名外包
  • a站b站2022年度最火关键词