导入导出
百度已收录

在实际开发中经常需要使用导入导出功能来加快数据的操作。在项目中可以使用注解来完成此项功能。 云程平台使用开源组件EasyPoi实现导入导出功能,具体用法参考官方文档:http://doc.wupaas.com/docs/easypoi/easypoi-1c0u4mo8p4ro8

EasyPoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板语言(熟悉的表达式语法),完成以前复杂的写法。

 

一、导出实现流程

 

1、在实体变量上添加@Excel注解,以职务管理模块为例说明:

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yuncheng.common.base.entity.BaseEntity;

import java.io.Serializable;

@TableName("sys_position")
public class SysPosition extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 1L;

   /**职位名称*/
   @Excel(name = "职位名称", width = 15)
   private java.lang.String positionName;
   /**职位编码*/
   @Excel(name = "职位编码", width = 15)
   private java.lang.String positionCode;
   /**职位排序*/
   @Excel(name = "职位排序", width = 15)
   private java.lang.Integer positionOrder;
   /**职位描述*/
   @Excel(name = "职位描述", width = 15)
   private java.lang.String description;
}

2、在Controller添加导出方法,以职务管理模块为例说明:

@RequestMapping(value = "/exportExcel")
@AutoLog(value = "职务管理-导出")
public ModelAndView exportExcel(HttpServletRequest request, SysPosition sysPosition) {
   return super.exportExcel(request, sysPosition, SysPosition.class, "职位");
}

云程平台对EasyPoi进行了进一步封装,业务代码仅仅实现super.exportExcel(request, sysPosition, SysPosition.class, “职位”)即可实现excel导出功能。

 

3、添加导出按钮事件

<a-button type="default"  icon="download" @click="handleExportXls('职位表')">导出</a-button>

其中handleExportXls方法,平台进行了封装,业务代码无需实现。

 

4、导出Excel效果

二、导入实现流程

 

1、在实体变量上添加@Excel注解,以职务管理模块为例说明:

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yuncheng.common.base.entity.BaseEntity;

import java.io.Serializable;

@TableName("sys_position")
public class SysPosition extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 1L;

   /**职位名称*/
   @Excel(name = "职位名称", width = 15)
   private java.lang.String positionName;
   /**职位编码*/
   @Excel(name = "职位编码", width = 15)
   private java.lang.String positionCode;
   /**职位排序*/
   @Excel(name = "职位排序", width = 15)
   private java.lang.Integer positionOrder;
   /**职位描述*/
   @Excel(name = "职位描述", width = 15)
   private java.lang.String description;
}

2、在Controller添加导入方法,以职务管理模块为例说明:

@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
@AutoLog(value = "职务管理-导入")
public HttpResult<?> importExcel(HttpServletRequest request, HttpServletResponse response)throws IOException {
   return super.importExcel(request, response, SysPosition.class);
}

云程平台对EasyPoi进行了进一步封装,业务代码仅仅实现super.importExcel(request, response, SysPosition.class)这一句即可实现excel导出功能。

 

3、添加导出按钮事件

<a-button type="default" icon="import">导入</a-button>

4、excel导入模板如何获得

先点击导出按钮,生成一个excel即为导入模板

 

三、复杂导入导出

 

复杂主子表的导入导出请参考平台“数据字典”模块SysDictController

导入导出过程需要复杂计算的请参考平台“用户管理”模块SysUserController