easypoi 表格导出 java+vue

3 篇文章 0 订阅
本文档展示了如何使用Easypoi库在Java后端进行Excel数据导出。通过引入Easypoi的相关依赖,配置实体类上的Excel注解,以及在Controller中调用ExcelExportUtil方法,实现了从数据库查询数据并导出到Excel的功能。前端使用axios发起请求,接收到响应后下载Excel文件。
摘要由CSDN通过智能技术生成

依赖

        <!--easypoi导出excel-->
        <!--easypoi-base 导入导出的工具包,可以完成Excel导出,导入,Word的导出,Excel的导出功能-->
        <dependency>
            <groupId>org.jeecg</groupId>
            <artifactId>easypoi-base</artifactId>
            <version>2.3.1</version>
        </dependency>
        <!--easypoi-web  耦合了spring-mvc 基于AbstractView,极大的简化spring-mvc下的导出功能-->
        <dependency>
            <groupId>org.jeecg</groupId>
            <artifactId>easypoi-web</artifactId>
            <version>2.3.1</version>
        </dependency>
        <!--easypoi-annotation 基础注解包,作用与实体对象上,拆分后方便maven多工程的依赖管理-->
        <dependency>
            <groupId>org.jeecg</groupId>
            <artifactId>easypoi-annotation</artifactId>
            <version>2.3.1</version>
        </dependency>

controller

	import org.apache.poi.ss.usermodel.Workbook;
	import org.jeecgframework.poi.excel.ExcelExportUtil;
	import javax.servlet.http.HttpServletRequest;
	import javax.servlet.http.HttpServletResponse;
	import com.nusp.Entity.Common.EasyPoiExcel;
    @Autowired
    CommonMapper commonMapper;

    /**
     * 导出
     * @param request
     * @param response
     * @throws Exception
     */
    @ApiOperation("导出")
    @GetMapping("deriveExcel")
    public void deriveExcel(HttpServletRequest request, HttpServletResponse response, AccessTableVo queryParams) throws Exception {
        // 告诉浏览器用什么软件可以打开此文件
        response.setHeader("content-Type", "application/vnd.ms-excel");
        // 下载文件的默认名称
        response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("导出的表格", "UTF-8") + ".xls");
        //编码
        response.setCharacterEncoding("UTF-8");
        List<EasyPoiExcel> list = commonMapper.selectTableExcel(queryParams);
        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), EasyPoiExcel.class, list);
        workbook.write(response.getOutputStream());
    }

实体

package com.nusp.Entity.Common;

import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecgframework.poi.excel.annotation.ExcelTarget;

/**
 * @User: 
 * @Date: 2022/9/9 15:59
 */
@ExcelTarget("EasyPoiExcel")
@Data
public class EasyPoiExcel {
    //项目编号
    @Excel(name = "项目编号", orderNum = "2", mergeVertical = true, isImportField = "projectNo")
    private String projectNo;
    //项目名称
    @Excel(name = "项目名称", orderNum = "2", mergeVertical = true, isImportField = "projectName")
    private String projectName;
    //站点名称
    @Excel(name = "站点名称", orderNum = "2", mergeVertical = true, isImportField = "siteName")
    private String siteName;
    //站点类型
    @Excel(name = "站点类型", orderNum = "2", mergeVertical = true, isImportField = "siteType")
    private String siteType;
    //客户名称
    @Excel(name = "客户名称", orderNum = "2", mergeVertical = true, isImportField = "userName")
    private String userName;
    //运维供应商
    @Excel(name = "运维供应商", orderNum = "2", mergeVertical = true, isImportField = "supplierName")
    private String supplierName;
    //用户编号
    @Excel(name = "用户编号", orderNum = "2", mergeVertical = true, isImportField = "consNo")
    private String consNo;
    //用能客户联系人
    @Excel(name = "用能客户联系人", orderNum = "2", mergeVertical = true, isImportField = "contacts")
    private String contacts;
    //联系方式
    @Excel(name = "联系方式", orderNum = "2", mergeVertical = true, isImportField = "contactTel")
    private String contactTel;
    //用能客户联系人
    @Excel(name = "用能客户联系人", orderNum = "2", mergeVertical = true, isImportField = "sucontacts")
    private String sucontacts;
    //联系方式
    @Excel(name = "联系方式", orderNum = "2", mergeVertical = true, isImportField = "sucontactTel")
    private String sucontactTel;
    //对接系统
    @Excel(name = "对接系统", orderNum = "2", mergeVertical = true, isImportField = "sysCode")
    private String sysCode;
    //角色
    @Excel(name = "角色", orderNum = "2", mergeVertical = true, isImportField = "role")
    private String role;
    //用户ID
    @Excel(name = "用户ID", orderNum = "2", mergeVertical = true, isImportField = "userId")
    private String userId;
    //站点ID
    @Excel(name = "站点ID", orderNum = "2", mergeVertical = true, isImportField = "siteId")
    private String siteId;
    //智能运维项目状态
    @Excel(name = "智能运维项目状态", orderNum = "2", mergeVertical = true, isImportField = "statusZ")
    private String statusZ;
    //能效管理项目状态
    @Excel(name = "能效管理项目状态", orderNum = "2", mergeVertical = true, isImportField = "statusN")
    private String statusN;
    //需求响应项目状态
    @Excel(name = "需求响应项目状态", orderNum = "2", mergeVertical = true, isImportField = "statusX")
    private String statusX;
    //站点类型编号
    @Excel(name = "站点类型编号", orderNum = "2", mergeVertical = true, isImportField = "siteTypes")
    private String siteTypes;
}

前端

   //导出
      deriveExcel(){
        let opt = {
          url: "Common/deriveExcel",
          method: 'get',
          responseType: 'blob',
          data: this.AccessDataManager
        }
        this.$axios.request(opt).then(res => {
          if (!res) return
          const blob = new Blob([res.data], {type: 'application/vnd.ms-excel;'})
          const a = document.createElement('a');
          // 生成文件路径
          let href = window.URL.createObjectURL(blob)
          a.href = href
          // 文件名中有中文 则对文件名进行转码
          a.download = decodeURIComponent('导出');
          // 利用a标签做下载
          document.body.appendChild(a)
          a.click()
          document.body.removeChild(a)
          window.URL.revokeObjectURL(href)
          this.allloading = false;
        })
      },

完结撒花

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值