| 需要插件 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="导出"/>
 <mx:DataGrid rowCount="20" dataProvider="{dp}">
 <mx:columns>
 <mx:DataGridColumn headerText="学号" dataField="studentID"/>
 <mx:DataGridColumn headerText="姓名" dataField="name"/>
 <mx:DataGridColumn headerText="性别" dataField="gender"/>
 <mx:DataGridColumn headerText="生日" dataField="birthday" />
 <mx:DataGridColumn headerText="班级" dataField="className"/>
 </mx:columns>
 </mx:DataGrid>
 </mx:Panel>
 </s:Application>
 
 (编辑:南平站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |