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;
    }

测试

相关推荐
开发者小天1 小时前
调整为 dart-sass 支持的语法,将深度选择器/deep/调整为::v-deep
开发语言·前端·javascript·vue.js·uni-app·sass·1024程序员节
jiuri_12152 小时前
Docker使用详解:在ARM64嵌入式环境部署Python应用
python·docker·容器
chenchihwen2 小时前
AI代码开发宝库系列:Function Call
人工智能·python·1024程序员节·dashscope
fat house cat_3 小时前
【netty】基于主从Reactor多线程模型|如何解决粘包拆包问题|零拷贝
java·服务器·网络·netty
青云交3 小时前
Java 大视界 -- Java 大数据在智能教育学习社区互动模式创新与用户活跃度提升中的应用(426)
java·大数据·学习·flink 实时计算·智能教育社区·互动模式创新·用户活跃度
李少兄3 小时前
HTML 表单控件
前端·microsoft·html
神奇的海马体3 小时前
Tomcat隐藏版本号
java·tomcat
拜见老天師3 小时前
使用mybatis-plus,实现将排序时,字段值为NULL的数据排在最后
java·mybatis
汤姆yu4 小时前
基于python的化妆品销售分析系统
开发语言·python·化妆品销售分析