在实际开发中经常需要使用导入导出功能来加快数据的操作。在项目中可以使用注解来完成此项功能。 云程平台使用开源组件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