<?xml version="1.0" encoding="utf-8"?>
<mx: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" minWidth="955" minHeight="600">
<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;
import mx.utils.ArrayUtil;
[Bindable]
private var dp:Array = [
{studentID1:1,name1:"2ssd",gender1:"为1",birthday1:"4区分千万",className1:"5清道夫却无法"},
{studentID1:2,name1:"2士大夫",gender1:"1色调",birthday1:"4却无法个我是",className1:"5为去去"},
{studentID1:3,name1:"2访问",gender1:"2色调",birthday1:"飞4",className1:"访问5"},
{studentID1:4,name1:"访问2",gender1:"3色调",birthday1:"4却无法却无法",className1:"为5"},
{studentID1:5,name1:"2各位",gender1:"4色调",birthday1:"4飞完全去是",className1:"5为"}];
private var str:String = "";
private var sheet:Sheet;
private var mbytes:ByteArray;
private var file:FileReference;
private function onCreate(dg:DataGrid):void {
var excelFile:ExcelFile = new ExcelFile();
//for(var i:int=1; i<=dp.length;i++){
//var obj:Object = dp[i-1];
//var j:int = 0;
//for(var key:String in obj){
//excelFile.sheets.addItem(generateSheet(0,j,key));
//excelFile.sheets.addItem(generateSheet(i,j,obj[key]));
//j++;
//}
//}
//表头
for(var x:int=0; x<dg.columns.length;x++)
{
if(dg.columns[x].visible == true)
{
if(dg.columns[x].headerText != null)
{
excelFile.sheets.addItem(generateSheet(0,x,dg.columns[x].headerText));
}
}
}
for(var i:int =0;i<dg.dataProvider.length;i++) {
for(var j:int=0; j < dg.columns.length; j++) {
if(dg.dataProvider.getItemAt(i) != undefined && dg.dataProvider.getItemAt(i) != null) {
//if((dg.columns[j] as DataGridColumn).labelFunction != undefined) {
//excelFile.sheets.addItem(generateSheet(i+1,j,(dg.columns[j] as DataGridColumn).labelFunction(dg.dataProvider.getItemAt(i),dg.columns[j].dataField)));
//}else{
excelFile.sheets.addItem(generateSheet(i+1,j,dg.dataProvider.getItemAt(i)[(dg.columns[j] as DataGridColumn).dataField]));
//}
}
}
}
mbytes = excelFile.saveToByteArray();
file = new FileReference();
try
{
file.save(mbytes,"测试文件.xls"); // 定死文件名
}
catch (error:Error)
{
trace("Failed:", error.message)
}
function generateSheet(i:int,j:int,o:Object):Sheet{
if(!sheet){
sheet = new Sheet();
sheet.resize(10,10);
}
sheet.setCell(i, j, String(o));
return sheet;
}
}
]]>
</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="studentID1"/>
<mx:DataGridColumn headerText="姓名" dataField="name1"/>
<mx:DataGridColumn headerText="性别" dataField="gender1"/>
<mx:DataGridColumn headerText="生日" dataField="birthday1" />
<mx:DataGridColumn headerText="班级" dataField="className1"/>
</mx:columns>
</mx:DataGrid>
</mx:Panel>
</mx:Application>
需要用到as3xls