java springboot导出excel功能

news/2024/7/21 6:07:44 标签: java, spring boot, excel

excel_0">导出excel

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.7.20</version>
</dependency>
 <dependency>
     <groupId>org.apache.poi</groupId>
     <artifactId>poi-ooxml</artifactId>
     <version>4.1.2</version>
 </dependency>

浏览器写出输出格式

java"> response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
 String fileName = URLEncoder.encode("用户信息", "UTF-8");
 response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");

导出接口

java">@GetMapping (value = "/exportCultivate")
public void exportCultivate(HttpServletRequest request, HttpServletResponse response) throws IOException{
    List<CultivateInfo> cInfoList = cultivateService.queryAllCultivateInfoListByUser();
    if (cInfoList == null){
        response.getWriter().write("data does not exist");
    }
    // 在内存操作,写出到浏览器
    ExcelWriter writer = ExcelUtil.getWriter();
    //自定义标题别名
    writer.addHeaderAlias("cultivateName", "培训名称");
    writer.addHeaderAlias("trainingStatus", "培训状态"); // 1没有培训,2完成培训 3.正在进行
    writer.addHeaderAlias("trainingStartTime", "培训预计开始时间");
    writer.addHeaderAlias("trainingEndTime", "培训预计结束时间");
    writer.addHeaderAlias("trainingLocation", "培训地点");
    writer.addHeaderAlias("trainingTeacher", "内训师");
    writer.addHeaderAlias("teacherDepartment", "内训师所在部门");
    writer.addHeaderAlias("teacherTelephone", "内训师电话号码");
    writer.addHeaderAlias("prelectObject", "授课对象");
    writer.addHeaderAlias("number", "培训人数");
    writer.addHeaderAlias("signIn", "是否报名培训"); // 默认 1.不报名 2报名
    writer.addHeaderAlias("trainingTime", "培训时长/分钟");
    writer.addHeaderAlias("actualStartTime", "培训实际开始时间");
    writer.addHeaderAlias("actualEndTime", "培训实际结束时间");
    writer.addHeaderAlias("trainingSummary", "培训小结");
    writer.addHeaderAlias("trainingScore", "培训评价成绩");
    // 一次性写出list内的对象到excel,使用默认样式,强制输出标题
    writer.setOnlyAlias(true);
    writer.write(cInfoList, true);
    // 设置浏览器响应的格式
    response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
    String fileName = URLEncoder.encode("培训信息", "UTF-8");
    response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
    ServletOutputStream out = response.getOutputStream();
    writer.flush(out, true);
    out.close();
    writer.close();
    IoUtil.close(out);

http://www.niftyadmin.cn/n/198013.html

相关文章

2023年PMP考试应该注意些什么?(考情分析+资料分享)

最新消息&#xff01;23年8月PMP考试将使用第七版《PMBOK指南》&#xff01; ​2023年PMP考试安排出来了&#xff0c;有4场考试&#xff0c;3、5、8和11月&#xff0c;但3月不开启报名&#xff0c;供22年延期的地区的考生考试&#xff0c;未报名的可以报考5月&#xff0c;8月也…

mysql小课(5)

null/NULL(sql不区分大小写) 表示表格里面为空错误 select * from exam_result where chinese null;正确 select * from exam_result where chinese is null; select * from exam_result where chinese <> null;注意&#xff1a; 使用 不可以处理null的比较 使用 <…

【教学类-30-01】5以内加法题不重复(一页两份)(包含1以内、2以内、3以内、4以内、5以内加法,抽取最大不重复数量)

作品样式&#xff1a; 背景需求&#xff1a; 虽然学前阶段就对幼儿训练加减法列式题遭到诟病&#xff0c;但是从不少幼儿&#xff08;特别是二胎&#xff09;在家中已经开始适应加减法题型了。 结合中班年龄特点&#xff0c;我从5以内的不重复加法题开始实验&#xff08;雪花…

python--pip换源以及第三方模块安装

一、pip换源 pip install django 国外地址&#xff0c;速度慢 pip install django -i http://pypi.douban.com/simple/ 统一修改&#xff0c;以后都走豆瓣源 配置步骤&#xff1a; 1 去‘C:\Users\xxxx\’路径&#xff0c;在地址栏输入%APPDATA%敲回车&#xff0c;进入‘C:\U…

网络流媒体协议之——RTSP协议

目录 1. 概述 2. 流程 3. 播放 4. RTSP流程 4.1 OPTIONS 4.2 DESCRIBE 4.3 SETUP 4.4 PLAY 4.5 PAUSE 4.6 TEARDOWN 4.7 GET_PARAMETER 4.8 SET_PARAMETER 4.9 REDIRECT 4.10 ANNOUNCE 4.11 RECORD 5. 通过Wireshark抓取客户端的数据得到的报文 1. 概述 【后记】…

多线程---写一个死锁案例并排查

案例 public class DeadLockExe {public static void main(String[] args) {Object lock1 new Object();Object lock2 new Object();new Thread(() -> {synchronized(lock1) {System.out.println("thread A get lock1");try {Thread.sleep(100);} catch(Except…

科特ECTN快捷办理

广州速通检测认证有限公司需要的资料1.申请表2.商业发票3.提单格式件4.报关单5.PACKING LIST6.车辆出口须提供出口许可证。作为非洲电子货物跟踪单在中帼的综合服务机构&#xff0c;我们可以受理如下帼家的申请&#xff1a;ECTN/CTN/BESC&#xff1a;马里&#xff0c;尼日尔&am…

安科瑞电力监控系统在中国人民银行金融信息中心数据中心的设计与应用

安科瑞 李亚娜 摘要&#xff1a;采用微机保护和多功能电力仪表、采集变电所内10KV高压柜的各种电参量和开关信号。系统采用现场就地组网的方式&#xff0c;组网后通过现场总线通讯并远传至后台&#xff0c;通过Acrel-2000型电力监控系统实现配电所配电回路用电的实时监控和管理…