html5中文学习网

您的位置: 首页 > 网站及特效实例 > jquery特效 » 正文

flex导出excel具体实现_编程语言综合

[ ] 已经帮助:人解决问题

 flex导出excel的前提是需要插件as3xls-1.0.1.swc,下面为大家介绍下具体的实现fHrHTML5中文学习网 - HTML5先行者学习网

需要插件 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> 
 
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助