springboot+vue+element+poi+hutool工具导出为Excel文件

该文章描述了一个使用Vue前端和SpringBoot后端的日志管理系统,通过axios发送POST请求,传递日志数据到后端。后端利用ApachePOI和Hutool库,将接收到的对象数组转换成Excel文件并保存到指定路径。导出过程包括数据映射、文件命名和内容写入。
摘要由CSDN通过智能技术生成
需求:最近在做日志管理,需要将日志信息导出为Excel文件,即做一个导出功能。
环境:

前端:vue + element
后端:springboot

依赖/启动器:

		<dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.2</version>
        </dependency>

        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.5</version>
        </dependency>
前端界面如图所示:

在这里插入图片描述

ok,我们先看看前端传过去的数据是什么类型?

在这里插入图片描述这不就是一个对象数组嘛。ok,那咱后端就用对象数组来接收!

前端axios请求代码:

//this.$httpUrl相当于localhost:8080;  this.multipleSelection是你要导出的数据
this.$axios.post(this.$httpUrl+'/log/export',this.multipleSelection).then(res=>res.data).then(res=>{
            if(res.code == 200){
                this.$message.success("导出成功!");
                this.loadLog();
              }else{
                this.$message.error("执行失败!");
              }
          })

后端代码:

    public Result export(@RequestBody List<Log> logList){
		// 定义一个文件名
        Date date = DateUtil.date();
        String nowTime = DateUtil.format(date, "yyyyMMddHHmmssSSS");
        String fileName = nowTime+".xls";
		//申请一个表格(想象中就是一个excel)用来存日志数据
        List<Map<String,Object>> logs = CollUtil.newArrayList();
        for (Log log : logList){
            //使用LinkedHashMap可让导出顺序不变
            Map<String, Object> map = new LinkedHashMap<>();
            map.put("账号",log.getNo());
            map.put("IP",log.getIp());
            map.put("描述",log.getDescription());
            map.put("创建时间",log.getCreateTime());
            logs.add(map);
        }
		//写入的路径
        ExcelWriter writer = ExcelUtil.getWriter("E:/xxx/xxx/file/log/"+fileName);
        //定义标题名为日志信息;3:代表占3个单元格
        writer.merge(3,"日志信息");
        writer.write(logs,true);
        writer.close();
        return Result.suc();
    }

ok,启动运行去你的定义的路径下查看,即有一张刚刚导出的.xls表

在这里插入图片描述
小功能完结撒花~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值