Flex导出Excel (as3xls)

来源:互联网 发布:e4a mysql数据库 编辑:程序博客网 时间:2024/05/19 19:12
 
  1. /**
  2.                  * 导出Excel文件 by DataGrid
  3.                  */
  4.                 public static function exportToExcelByDg(dg:DataGrid, xlsName:String="exportExcel"):FileReference {
  5.                         var _sheet:Sheet = new Sheet();  //Excel选项卡
  6.                         var _fields:Array = []; //需要呈现的字段数组       
  7.                         var iList:IList = dg.dataProvider as IList; //DataGrid数据源
  8.                         var rowCount:int=iList.length; //有多少行数据
  9.                         var columns:Array=dg.columns; //DataGrid有多少列
  10.                         _sheet.resize(rowCount + 1, dg.columnCount); //设置当前选项卡 有多少行多少列
  11.                        
  12.                         //循环所有列
  13.                         for(var i:uint=0;i<columns.length;i++){
  14.                                 var dgc:DataGridColumn=columns[i];
  15.                                 _sheet.setCell(0, i, dgc.headerText); //设置单元格 参数:1、行号;2、列号;3、单元格的值
  16.                                 _fields.push(dgc);  //保存字段
  17.                         }
  18.                        
  19.                         //循环所有数据
  20.                         for (var r:int=0;r<rowCount;r++) {
  21.                                 var record:Object=iList.getItemAt(r);
  22.                                 //把数据写入某行某列
  23.                                 for(var c:uint=0;c<_fields.length;c++){
  24.                                         _sheet.setCell(r+1,c,record[_fields[c].dataField]); //设置单元格 参数:1、行号;2、列号;3、单元格的值
  25.                                 }
  26.                         }
  27.                        
  28.                         var xls:ExcelFile=new ExcelFile();
  29.                         xls.sheets.addItem(_sheet);  //把选项卡写入Excel文件中
  30.                         var bytes:ByteArray=xls.saveToByteArray();
  31.                         var fr:FileReference=new FileReference(); //保存对话框
  32.                         fr.save(bytes, xlsName + ".xls");
  33.                         return fr;
  34.                 }
原创粉丝点击