您的位置:首页 > 其它

Flex将DataGrid数据导出为CSV格式

2012-11-22 18:34 211 查看
初始时想使用as3xls(http://code.google.com/p/as3xls/)直接导出Excel xls文件 ,

但是此xls文件在Office 2010尝试打开出现文件损坏的提示, 无法浏览。

因此打算直接导出csv文件。

//导出csv
public static function exportToCSV(dataGrid:DataGrid):void{

var dataProviderCollection:ArrayCollection = dataGrid.dataProvider as ArrayCollection;

var rowCount:int = dataProviderCollection.length;

var ExcelStr:Array = [];//保存表格所有行

var columnsFiledText:Array = new Array();//列标题

var columnsFiledName:Array = new Array();//列数据字段

for each(var column:DataGridColumn in dataGrid.columns){

//保存Datagrid列标题
columnsFiledText.push(column.headerText.toString());
//保存DataGrid列数据字段名
columnsFiledName.push(column.dataField.toString());
}
//保存标题行
ExcelStr.push(columnsFiledText.join(",").toString());

for(var r:int = 0;r<rowCount;r++){

var rowData:Object = dataProviderCollection.getItemAt(r);

var csvRow:Array =new Array();//定义一行数据

for each(var col:String in columnsFiledName){

trace(rowData[col]);
csvRow.push(rowData[col]);//保存每一行的单元格数据
}
//保存一行数据
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");

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: