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");
}
但是此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");
}
相关文章推荐
- sl3中的DataGrid中的数据导出到Excel中 使用csv格式 解决中文是乱码的问题
- flex datagrid 数据导出
- silverlight开发:将datagrid中的数据导出为Excel和CSV文件
- php导出csv格式数据并将数字转换成文本的思路以及代码分享
- Asp.net导出Excel/Csv文本格式数据
- Qt将Sqlite中的表数据导出为CSV格式表格数据
- Bash中使用MySQL导入导出CSV格式数据
- datagrid数据导出到excel文件给客户端下载的几种方法 (xls,csv,html)
- bcp怎么导出一个表数据为带列名的csv格式文件
- php利用phpexcel插件实现数据的导入和导出(支持csv\xls\xlsx格式和超过26个字段列)
- Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
- MySQL Workbench导出csv格式文件打开后发现数据乱码解决方法
- [转]asp.net导出Excel/Csv格式数据最优方案(C#)
- java将表数据导出CSV格式
- MySQL Workbench导出csv格式文件打开后发现数据乱码解决方法
- OpenRefine导入CSV文件,数据清理后导出JSON格式
- PL/SOL csv格式导出查询结果时出现某些列的数据被四舍五入了的解决办法
- Asp.net导出Excel/Csv文本格式数据的方法
- MySQL 导出数据为csv格式的方法
- asp.net导出Excel/Csv格式数据最优方案(C#)