Java整合EasyExcel实战——2 导出复杂表头

详情代码

实体类

java 复制代码
@Data
public class ComplexHeadData {
    @ExcelProperty({"主标题", "字符串标题"})
    private String string;
    @ExcelProperty({"主标题", "日期标题"})
    private Date date;
    @ExcelProperty({"主标题", "数字标题"})
    private Double doubleData;
}

Controller层

java 复制代码
@RestController
@RequestMapping("/ex/test")
public class DemoMergeDataController {

    @GetMapping("/getTestDemo")
    public R getTestDemo(HttpServletResponse response) throws IOException {
        //        extracted(response);

// 定义导出的Excel文件名
        String fileName = "ComplexHeadData.xlsx";

// 设置响应的内容类型为二进制流,这是文件下载的标准设置
        response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);

// 设置响应头的Content-Disposition,使用"attachment"指示浏览器这是一个需要下载的文件,
// 并使用URLEncoder对文件名进行编码处理,确保文件名的兼容性跨平台和浏览器
        response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode(fileName, String.valueOf(StandardCharsets.UTF_8)));

        EasyExcel.write(response.getOutputStream(),ComplexHeadData.class).sheet().doWrite(data());

        return R.success();
    }
    //写入数据生成
    private List<ComplexHeadData> data() {
        List<ComplexHeadData> list = new ArrayList<ComplexHeadData>();
        for (int i = 0; i < 10; i++) {
            ComplexHeadData data = new ComplexHeadData();
            data.setString("字符串" + i);
            data.setDate(new Date());
            data.setDoubleData(0.56);
            list.add(data);
        }
        return list;
    }

测试

相关推荐
2501_94452642几秒前
Flutter for OpenHarmony 万能游戏库App实战 - 知识问答游戏实现
android·开发语言·javascript·python·flutter·游戏·harmonyos
CHU7290351 分钟前
线上扭蛋机拆盒小程序前端功能版块解析
前端·小程序·php
chilavert3182 分钟前
技术演进中的开发沉思-325 JVM:java体系技术全貌(下)
java·开发语言·jvm
chilavert3186 分钟前
技术演进中的开发沉思-324 JVM:java技术体系全貌(上)
java·开发语言
pcm12356711 分钟前
通信服务前沿知识
java
人工智能AI技术14 分钟前
【Agent从入门到实践】21 Prompt工程基础:为Agent设计“思考指令”,简单有效即可
人工智能·python
2501_9413220316 分钟前
铆钉表面缺陷检测:YOLO13-BiFPN模型实现与性能优化_1
python
卿着飞翔17 分钟前
Vue使用yarn进行管理
前端·javascript·vue.js
夏天想22 分钟前
vue通过iframe引入一个外链地址,怎么保证每次切换回这个已经打开的tab页的时候iframe不会重新加载
前端·javascript·vue.js
GISer_Jing23 分钟前
2026年前端开发目标(From豆包)
前端·学习·aigc