2012-05-01 19:52:07 +08:00

42 lines
1.4 KiB
JavaScript

//>>built
define("dojox/grid/enhanced/plugins/exporter/CSVWriter",["dojo/_base/declare","dojo/_base/array","./_ExportWriter","../Exporter"],function(_1,_2,_3,_4){
_4.registerWriter("csv","dojox.grid.enhanced.plugins.exporter.CSVWriter");
return _1("dojox.grid.enhanced.plugins.exporter.CSVWriter",_3,{_separator:",",_newline:"\r\n",constructor:function(_5){
if(_5){
this._separator=_5.separator?_5.separator:this._separator;
this._newline=_5.newline?_5.newline:this._newline;
}
this._headers=[];
this._dataRows=[];
},_formatCSVCell:function(_6){
if(_6===null||_6===undefined){
return "";
}
var _7=String(_6).replace(/"/g,"\"\"");
if(_7.indexOf(this._separator)>=0||_7.search(/[" \t\r\n]/)>=0){
_7="\""+_7+"\"";
}
return _7;
},beforeContentRow:function(_8){
var _9=[],_a=this._formatCSVCell;
_2.forEach(_8.grid.layout.cells,function(_b){
if(!_b.hidden&&_2.indexOf(_8.spCols,_b.index)<0){
_9.push(_a(this._getExportDataForCell(_8.rowIndex,_8.row,_b,_8.grid)));
}
},this);
this._dataRows.push(_9);
return false;
},handleCell:function(_c){
var _d=_c.cell;
if(_c.isHeader&&!_d.hidden&&_2.indexOf(_c.spCols,_d.index)<0){
this._headers.push(_d.name||_d.field);
}
},toString:function(){
var _e=this._headers.join(this._separator);
for(var i=this._dataRows.length-1;i>=0;--i){
this._dataRows[i]=this._dataRows[i].join(this._separator);
}
return _e+this._newline+this._dataRows.join(this._newline);
}});
});