flex导出excel具体实现
网络编程 2021-07-05 11:32www.168986.cn编程入门
flex导出excel的前提是需要插件as3xls-1.0.1.swc,狼蚁网站SEO优化为大家介绍下具体的实现
需要插件 as3xls-1.0.1.swc
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe./mxml/2009"
xmlns:s="library://ns.adobe./flex/spark"
xmlns:mx="library://ns.adobe./flex/mx">
<fx:Script>
<![CDATA[
import .as3xls.xls.ExcelFile;
import .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>
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe./mxml/2009"
xmlns:s="library://ns.adobe./flex/spark"
xmlns:mx="library://ns.adobe./flex/mx">
<fx:Script>
<![CDATA[
import .as3xls.xls.ExcelFile;
import .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>
编程语言
- 机械手焊接机器人编程 机械手焊接设备编程
- vb数据库编程实例,vb做数据库
- tiobe世界编程语言排行榜,全球编程语言排行
- 成都java编程培训 成都it编程培训中心
- 编程基础培训,编程基础知识培训
- flash游戏编程基础教程,flash游戏开发教程
- 不会英语能学编程吗 不会英语可以学程序员吗
- 爱心代码编程C语言 爱心代码编程c语言公式
- c语言编程学习入门 c语言编程快速入门
- 西门子plc编程培训 西门子plc编程培训班
- 哪里可以学编程 台州哪里可以学编程
- 少儿编程哪个好 少儿编程哪个品牌好
- 编程是什么意思,图形编程是什么意思
- c语言编程软件下载,c语言编程软件在哪下载
- java编程软件下载,java编程下载手机版
- ug编程培训学校,ug编程培训教程