flex 通过AdvancedDataGrid 导出csv文件

因为数据量很大,导出Excel时报错,所以改用导出为csv文件
 
代码如下:
public static function exportAVDToCSV(dg:AdvancedDataGrid):void{ 
var k:int;
var j:int;
 
var dataProviderCollection:ArrayCollection = dg.dataProvider as ArrayCollection;
 
var rowCount:int = dataProviderCollection.length; 
 
var ExcelStr:Array = [];//保存表格所有行
 
var columnsFiledText:Array = new Array();//列标题
 
 

 
//Set the tableheader data (retrieves information from the datagrid header
for(var i:int = 0;i<dg.columns.length;i++) {
 
if(dg.columns[i].headerText != undefined) {
columnsFiledText.push(dg.columns[i].headerText);
} else {
columnsFiledText.push(dg.columns[i].dataField);
}
}
//保存标题行
ExcelStr.push(columnsFiledText.join(",").toString()); 
 
for(var r:int = 0;r<rowCount;r++) {
var rowData:Object = dataProviderCollection.getItemAt(r);    
// Alert.show("rowCount"+rowCount.toString()+"dg.columns.length:"+dg.columns.length.toString());
var csvRow:Array =new Array();//定义一行数据 
for(k = 0; k < dg.columns.length; k++) {
// Alert.show(dg.columns.length.toString());
var columnsFiledName:Array = new Array();//列数据字段
if(rowData != undefined && rowData != null) {
 
if(dg.columns[k].labelFunction != undefined) {
columnsFiledName.push(dg.columns[k].labelFunction(rowData,dg.columns[k].dataField));  
} else {
columnsFiledName.push(rowData[dg.columns[k].dataField]);
}
}
// Alert.show("第"+r+"行"+"第"+k+"列"+columnsFiledName.toString());
trace(columnsFiledName);
csvRow.push(columnsFiledName.join(",").toString()); 
}

 
ExcelStr.push(csvRow.join(",").toString()); 
 
}
 

var bytes:ByteArray = new ByteArray();
 
var fileReference:FileReference = new FileReference();
 
bytes.writeMultiByte(ExcelStr.join("\r\n"),"gb2312");
 
fileReference.save(bytes,"test.csv");
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值