实现excel导出最简单方式

今天来记录一下导出excel的实现方式,导出的格式是xlsx的文件。

这里用到的是hutool的工具包,依赖如下:

复制代码
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.3.5</version>
    <scope>compile</scope>
</dependency>
复制代码
<!--读取excel组件-->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.2</version>
</dependency>

导出代码如下:

java 复制代码
    @PostMapping(value = "download", consumes = APPLICATION_JSON_VALUE)
    public void download(@RequestBody QaLogPageVO pageVO, HttpServletResponse response) throws IOException {
        List<QaLog> list = service.list();

        ExcelWriter writer = ExcelUtil.getWriter(true);
        //自定义标题别名
        writer.addHeaderAlias("name", "姓名");
        writer.addHeaderAlias("time", "提问时间");
        writer.addHeaderAlias("model", "模型");
        writer.addHeaderAlias("question", "问题");
        writer.addHeaderAlias("answer", "答案");
        writer.addHeaderAlias("source", "来源");
        writer.addHeaderAlias("feedbackStatus", "反馈");
        writer.addHeaderAlias("department", "部门");

        // 默认的,未添加alias的属性也会写出,如果想只写出加了别名的字段,可以调用此方法排除之
        writer.setOnlyAlias(true);

        String title = DateUtil.format(startTime,"yyyy-MM-dd HH:mm:ss") +"------"+ DateUtil.format(endTime,"yyyy-MM-dd HH:mm:ss");
        // 合并单元格后的标题行,使用默认标题样式
        writer.merge(7, title);
        // 一次性写出内容,使用默认样式,强制输出标题
        writer.write(list, true);

        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
        response.setHeader("Content-Disposition", "attachment;filename=test.xlsx");
        ServletOutputStream out = response.getOutputStream();

        writer.flush(out, true);
        writer.close();
        IoUtil.close(out);
    }
相关推荐
Julien20041 小时前
管理机密(一)
运维·服务器·开发语言·学习方法
the3clipse2 小时前
MPC-HC 下载安装与最佳配置教程:免费开源、轻量无广告、支持 4K 硬解的 Windows 播放器
windows·播放器·安装教程·硬件加速·mpc-hc·字幕设置·lav filters
独隅2 小时前
WebStorm Windows 版 React / Next.js 实战替换指南
javascript·windows·webstorm
陈工大模型3 小时前
2026年11月最新免费解压软件横评:7-Zip 、 Win解压缩名列前茅
windows·软件工程·7-zip·压缩软件
AOI小白新手上路6 小时前
深度学习算力购置方案分析:本地 RTX 4090 服务器 vs 云端租赁
服务器·人工智能·深度学习
千桐科技6 小时前
qKnow智能体构建平台专业版 v3.1.5 发布:扩容工作流编排调用能力,上线Text2SQL插件,拓宽数据类智能应用构建边界
服务器·数据库·oracle·qknow
雪落漂泊6 小时前
Linux进程(四)概念:命令行参数和环境变量篇
linux·运维·服务器
NextTech_6 小时前
不想学 vim,怎么改服务器上的配置文件?
服务器·编辑器·vim
say_fall7 小时前
【Linux系统编程】Linux进程信号:从“外卖到了“到内核里的一张位图
linux·运维·服务器·车载系统·智能硬件
用户0332126663677 小时前
使用 Python 在 Excel 文档中添加水印
python·excel