Ext4 实现grid多表头数据导出Excel

本文介绍了在Ext 4.1版本中如何实现grid的单行和多行表头数据导出到Excel的功能,包括Store分组的情况。提供了具体的代码示例,包括按钮调用的方法以及后端使用SpringMVC的ExcelView实现。
摘要由CSDN通过智能技术生成

版本Ext 4.1

实现单行表头、多行表头、Store分组, 通用grid 数据导出功能。

 

 

上图:

 

导出grid列表显示数据,避免直接从数据库导出,标识符需要填写转换方法。如:

return v=='Y'?'是':'';

导出生成Excel

 

 

上代码:

 

	Ext.qy.ExtractionGridDate = function(){
		/** 列表头  text,align */
		var theadObj = {},
			theadArray = [],
			tabName,
			dataRows = [],
			form,
			_eachColumns function(cs,n){
				var num = 0 ;
				for(var j=0,l=cs.length;j<l;j++){
					num  += _col_z(cs[j],n);
					if((n+1)>theadObj.depth){
						theadObj.depth = n+1;
					}
				}
				return num;
			},
			_col_z = function(cols,n){
				var return_num = 0,
					child_cols = cols.columns,
					hidden_ = cols.hidden||false,
					child_len = child_cols?child_cols.length:0,
					align_ = cols.align||'left';
				if(child_cols){
					child_len = _eachColumns(child_cols,n+1);
					return_num = child_len;
				}else{
					if(!hidden_){
						return_num += 1;
					}
					theadArray.push({
						hidden:hidden_,
						align:align_
					});
				}
				theadObj["row"+n].push({
					text:cols.header||cols.text||'',
					align:align_,
					hidden:hidden_,
					child_len:child_len
				});
				return return_num;
			},
			_subForm = function (arrs, url){//提交
				var i,
					l,
					rowStyle=[],
					rows = [];
				for(i=0,l=theadArray.length;i<l;i++){
					if(!theadArray[i].hidden){
						rowStyle.push(theadArray[i].align);
					};
				};
				for(i=0,l=arrs.length;i<l;i++){
					var arr = arrs[i],
						row = [];
					for(var j=0,k = arr.length;j<k;j++){
						if(!theadArray[j].hidden){
							row.push(arr[j]);
						};
					};
					rows.push(row.join('<&$&>'))
				};
				l = '<#$#>';
				var inputs = [
				{name: 'filename', value: tabName},
				{name: 'depth', value: theadObj.depth},
				{nam
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值