flex导出excel

需要插件  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>






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值