Flex界面DateGrid数据导出Excel表格
来源:互联网 发布:python爬虫爬取知乎 编辑:程序博客网 时间:2024/05/21 17:35
1.FileReference的save方法在Flash10才支持,在Flex工程上右键,属性,Flex Conpiler中把Require Flash Player version:填为10.0.0。
2.生成的Excel为旧版本,需要微软office才能打开,金山WPS版本不兼容。
3.as3xls-1.0.1.SWC解决as3xls-1.0.swc的中文乱码问题,附件提供。
Test.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init();"><mx:Script>
<![CDATA[
[Bindable]
private var dg:Array;
[Bindable]
private var fields:Array = new Array();
private function init():void
{
dg=new Array();
for(var i:int=0;i<5;i++)
{
//ItemName/ItemCost/ItemQty/ItemPrice
var tempArray:Array = new Array();
tempArray.ItemName="测试"+i;
tempArray.ItemCost="调试"+i;
tempArray.ItemQty="ItemQty^^"+i;
tempArray.ItemPrice="ItemPrice^^"+i;
dg.push(tempArray);
}
}
public function exportTo():void
{
///调用Util类的静态方法
Util.exportToExcel(myDg);
}
]]>
</mx:Script>
<mx:DataGrid id="myDg" x="78" y="55" width="533" height="157" dataProvider="{dg}">
<mx:columns>
<mx:DataGridColumn headerText="ItemName" dataField="ItemName"/>
<mx:DataGridColumn headerText="ItemCost" dataField="ItemCost"/>
<mx:DataGridColumn headerText="ItemQty" dataField="ItemQty"/>
<mx:DataGridColumn headerText="ItemPrice" dataField="ItemPrice"/>
</mx:columns>
</mx:DataGrid>
<mx:Button id="myBtn" x="619" y="113" label="exporttoexcel" click="exportTo();"/>
</mx:Application>
================================
as工具类:Util.as
package
{
import com.as3xls.xls.Cell;
import mx.collections.ArrayCollection;
import flash.events.*;
import flash.net.FileReference;
import com.as3xls.xls.Sheet;
import com.as3xls.xls.ExcelFile;
import mx.controls.Alert;
import mx.controls.DataGrid;
import mx.controls.dataGridClasses.DataGridColumn;
import flash.utils.ByteArray;
import mx.controls.Alert;
public class Util
{
public function Util()
{
}
/**导出Excel表格函数,参数为DataGrid**/
public static function exportToExcel(myDg:DataGrid):void
{
var fields:Array = new Array();
/**生成表对象sheet**/
var sheet:Sheet= new Sheet();
var dataProviderCollection:ArrayCollection =myDg.dataProvider as ArrayCollection;
/**获得表格的行数**/
var rowCount:int = dataProviderCollection.length;
/**设置表格的行数(rowCount+1),列数(myDg.columnCount)**/
sheet.resize(rowCount+1,myDg.columnCount);
/**获得DateGrid列的内容**/
var columns:Array = myDg.columns;
/**循环设置列名的值**/
var i:int = 0;
for each (var field:DataGridColumn in columns)
{
fields.push(field.dataField.toString());
/**第一行的值,取值为myDg的headerText**/
sheet.setCell(0,i,field.headerText.toString());
i++;
}
/**循环设置行的值**/
for(var r:int=0;r<rowCount;r++)
{
/**获得dataProviderCollection的每行Item的对象**/
var record:Object =dataProviderCollection.getItemAt(r);
/**调用回调函数写入sheet**/
insertRecordInSheet(r+1,sheet,record);
}
/**生成Excel文件**/
var xls:ExcelFile = new ExcelFile();
/**将sheet写入Excel文件中**/
xls.sheets.addItem(sheet);
/**将xls对象转换为ByteArray流对象**/
var bytes: ByteArray = xls.saveToByteArray();
/**生成新文件域**/
var fr:FileReference = new FileReference();
/**将bytes流对象保存到文件域**/
fr.save(bytes,"SampleExport.xls");
/**回调函数**/
function insertRecordInSheet(row:int,sheet:Sheet,record:Object):void
{
var colCount:int = myDg.columnCount;
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++;
}
}
}
}
}
}
- Flex界面DateGrid数据导出Excel表格
- flex 从DataGrid列表中导出数据为excel表格
- 导出数据为excel表格
- PHP导出 Excel表格数据
- Java导出Excel表格数据
- 数据导出到excel表格
- 表格数据导出到excel
- ASP.NET,Web界面利用Button来实现将telerik:RadGrid表格内数据导出Excel
- DBGrid数据导出到Excel表格
- DBGrid数据导出到Excel表格中
- 从页面表格导出数据到Excel
- Extjs中将数据导出为Excel表格
- js导出表格数据到word、excel
- jsp页面表格数据导出到excel
- Java数据导出为Excel表格
- 【VB】MSHFlexGrid表格数据导出到Excel
- php导出数据为excel表格
- jdbc导出数据库数据到Excel表格
- Java中Annotation(注释)系列学习笔记(1)
- 专访Bill Liu:软件测试是支撑研发前行的一条腿
- JSTL 教程
- VC中使用低级音频函数WaveX播放声音文件
- 平淡 思考 努力 坚持
- Flex界面DateGrid数据导出Excel表格
- 在C++编译器下dlsym()引发的思考
- 结构体的内存分配(sizeof)
- ant脚步执行JUnit测试用例
- 在MFC单文档中,如何操作状态栏
- 每日一篇BlackBerry10开发——序
- ListView下拉刷新
- commons-ftp中ftpClient类的API
- android EditText的部分属性