实现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);
    }
相关推荐
mengchanmian8 小时前
VSFTP 服务器搭建(Centos)
运维·服务器·centos
别动我齐刘海9 小时前
Linux 系统调试学习1
linux·运维·服务器·c++·学习·机器学习·机器人
不像程序员的程序媛11 小时前
linux常见文本操作命令
linux·运维·服务器
jack1868911 小时前
Devin 智能软件工程师实战应用指南
windows
蜗牛互联网12 小时前
Python Agent工具调用的白名单、参数校验与审批门禁
java·服务器·前端·人工智能·后端·python
小HANN13 小时前
华为云企业网站上云实战|从零搭建高可用WordPress全站架构(ECS+RDS+ELB+弹性伸缩+云监控闭环)
linux·运维·服务器·经验分享
Hello_Pyhx14 小时前
WinDirStat 2.9.3:从目录扫描到可复查的占用报表
windows·mac·垃圾清理
祖力5514 小时前
驱动工程搭建与字符设备驱动框架
linux·运维·服务器·内核·arm·imx6ull·驱动
发量惊人的中年网工14 小时前
SD-WAN 组网方案怎么选?跨地域与多分支企业的选型指南(含成本对比)
服务器·网络·数据库
斯晨的AI笔记14 小时前
在服务器上跑 npm ci 四十分钟没装完,我打包把 node_modules 扔了过去
服务器·node.js