easyui datagrid 表格内容导出为Excel (使用easypoi,单sheet非模板)

1.概况

背景:SSM框架下的maven管理项目

需求:将datagrid前端展示的表格导出为Excel文件

插件:easypoi(现成的轮子)

备注:此方法只要引入插件,并且有获取datagrid的数据源方法就足够完成了,导出的样式是单sheet非模板的Excel表格。

2.实现

整体思路

1.引入插件jar包

2.前台页面添加导出按钮和点击事件

3.后台导出处理:

1)两个List,一个是你的datagrid数据源,一个是与数据源对应,用于导出设置的泛型ExcelExportEntity的List

2)进行各种设置后就可以导出啦!

 

1)pom.xml文件引入easypoi依赖

	
		
	           org.jeecg
	           easypoi-base
	           2.4.0
	       
	       
	           org.jeecg
	           easypoi-web
	           2.4.0
	       
	       
	           org.jeecg
	           easypoi-annotation
	           2.4.0                  
	       

2)前台页面添加导出表格按钮和按钮点击事件

按钮:

导出表格

事件:

	$('#export').on('click',function(){
		if($('#dg').datagrid('getData').total == 0){
			return;
		}else{	
			window.location='<%=basePath%>export/exportExcel';
		}
	});

其中dg是要导出的datagrid的id,window.location后面跟的是导出表格的controller访问地址。

3)编写后台controller


	@RequestMapping("/exportExcel")
    public String dataExport(ModelMap modelMap) {
		try {
	              List entityList = new ArrayList();
		      entityList.add(new ExcelExportEntity("列1", "column1",40));//参数依次为(excel列名,结果集list的map主键,excel单元格宽度)
		      entityList.add(new ExcelExportEntity("列2", "column2",25));
		      entityList.add(new ExcelExportEntity("列3", "column3",25));
		      entityList.add(new ExcelExportEntity("列4", "column4",25));
		      entityList.add(new ExcelExportEntity("列5", "column5",25));
		      List> dataResult =  (获取你datagrid数据的方法)
		      				
		        modelMap.put(MapExcelConstants.ENTITY_LIST, entityList);//放入你的excel列表设置
		        modelMap.put(MapExcelConstants.MAP_LIST, dataResult);//放入你的datagrid数据结果列表
                        modelMap.put(NormalExcelConstants.PARAMS, new ExportParams("我是文件标题",""));
		        modelMap.put(MapExcelConstants.FILE_NAME, "我是文件名",""));
           
		        return MapExcelConstants.JEECG_MAP_EXCEL_VIEW;
		}catch(Exception e) {
			this.logger.error(e.getMessage());
		}
 		return NormalExcelConstants.JEECG_EXCEL_VIEW;
    }

将表格内容导出,实际上是再次请求表格查询的方法,并把结果集导出;

上面用到两个列表:entityList和dataResult,entityList用的都是easypoi封装好的方法,主要是对导出后excel的列设置;dataResult是你的表格结果集,字段要与entityList设置的column1,column2...对应。

最终导出结果如图~

easyui datagrid 表格内容导出为Excel (使用easypoi,单sheet非模板)_第1张图片

easyui datagrid 表格内容导出为Excel (使用easypoi,单sheet非模板)_第2张图片

3.碎碎念

每次接触到没做过的模块都免不了头大,到处搜资料导出碰钉子哈,但往往实现后才发现根本不是这么复杂呀hhhh,做这个模块的时候我先引入的poi的依赖,又引入了easypoi的依赖,结果jar包冲突解决了半天...引入easypoi就已经包括poi的包了,毕竟是现成的轮子了,不过做之前我确实没这个概念

多sheet模板导出可以参考我的这篇文章:poi实现列表导出多sheet模板excel文件

 

你可能感兴趣的:(easyUI)