萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 編程語言綜合 >> flex導出excel具體實現

flex導出excel具體實現

 flex導出excel的前提是需要插件as3xls-1.0.1.swc,下面為大家介紹下具體的實現

需要插件 as3xls-1.0.1.swc  代碼如下: <?xml version="1.0" encoding="utf-8"?>  <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"  xmlns:s="library://ns.adobe.com/flex/spark"  xmlns:mx="library://ns.adobe.com/flex/mx">  <fx:Script>  <![CDATA[  import com.as3xls.xls.ExcelFile;  import com.as3xls.xls.Sheet;    import mx.collections.ArrayCollection;  import mx.controls.Alert;  import mx.controls.CheckBox;    [Bindable]  private var dp:Array = [  {studentID:1,name:"2ssdl",gender:"為001",birthday:"4區",className:"5清道夫卻無法"},  {studentID:2,name:"2士大",gender:"1色調",birthday:"4卻",className:"5為去去"},  {studentID:3,name:"2訪問",gender:"1色調",birthday:"飛4",className:"訪問5"},  {studentID:4,name:"訪問2",gender:"0色調",birthday:"4卻",className:"為5"},  {studentID:5,name:"2各位",gender:"0色調",birthday:"4飛",className:"5為"}];    private function onCreate(dg:DataGrid):void  {  var rowCount:int = dg.dataProvider.length;  var colCount:int = dg.columnCount;  var sheet:Sheet = new Sheet();  sheet.resize(rowCount+1,colCount); //設置表格的范圍  var fields:Array = new Array();//用來保存字段  for(var i:int=0; i< colCount;i++)  {  sheet.setCell(0,i,dg.columns[i].headerText.toString());//表格第0行設置字段名  fields.push(dg.columns[i].dataField.toString());  }  for(var i:int=0; i< rowCount;i++)  {  var record:Object =dg.dataProvider[i];//獲取某行  insertRecordInSheet(i+1,sheet,record);  }  var excelFile:ExcelFile = new ExcelFile();//新建excel文件  excelFile.sheets.addItem(sheet);//把表格添加入excel文件中  var mbytes:ByteArray = excelFile.saveToByteArray();  var file:FileReference = new FileReference();  file.save(mbytes,"測試文件.xls"); // 定死文件名  file.addEventListener(Event.COMPLETE, function (){  Alert.show("保存成功");  });  /**回調函數**/  function insertRecordInSheet(row:int,sheet:Sheet,record:Object):void  {  for(var c:int; c < colCount; c++)  {  var i:int = 0;  for each(var field:String in fields)  {  for each (var value:String in record)  {  /**循環判斷myDg列名域值record[field]與value是否相等**/  if (record[field].toString() == value)  /**寫入表格中**/  sheet.setCell(row,i,value);  }  i++;  }  }  }  }  ]]>  </fx:Script>  <fx:Declarations>  <!-- 將非可視元素(例如服務、值對象)放在此處 -->  </fx:Declarations>  <mx:Panel>  <mx:Button label="導出" click="onCreate(myDG)"/>  <mx:DataGrid id="myDG" width="100%" rowCount="20" dataProvider="{dp}">  <mx:columns>  <mx:DataGridColumn headerText="學號" dataField="studentID"/>  <mx:DataGridColumn headerText="姓名" dataField="name"/>  <mx:DataGridColumn headerText="性別" dataField="gender" width="50"/>  <mx:DataGridColumn headerText="生日" dataField="birthday" />  <mx:DataGridColumn headerText="班級" dataField="className"/>  </mx:columns>  </mx:DataGrid>  </mx:Panel>  </s:Application>   
copyright © 萬盛學電腦網 all rights reserved