版本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