原文出自:http://arcadiocarballares.com/?p=683 Export data to Excel from spark DataGrid
导出Excel工具类--AS文件:
package es.util { import com.as3xls.xls.ExcelFile; import com.as3xls.xls.Sheet; import flash.errors.IllegalOperationError; import flash.net.FileReference; import flash.utils.ByteArray; import mx.controls.dataGridClasses.DataGridListData; import spark.components.DataGrid; import spark.components.gridClasses.GridColumn; public class FlexToExcel { public function FlexToExcel() { throw new IllegalOperationError ("Class "ExcelExporterUtil" is static. You can't instance this"); } static public function exportDataGrid (dt:DataGrid, filename:String="excel.xls", listData:DataGridListData=null):void { var head:Array = new Array(); for each (var item:GridColumn in dt.columns.toArray()) { head.push(item.headerText); } var data:Array = new Array(); for each (var obj:Object in dt.dataProvider) { var arr:Array=new Array(); for each (var hd:GridColumn in dt.columns.toArray()) { arr.push(hd.itemToLabel(obj)); } data.push(arr); } export(head,data,filename); } static private function export(head:Array, data:Array,filename:String):void { // Create sheet var cols:int = head.length; var rows:int = data.length+1; var sheet:Sheet = new Sheet(); sheet.resize(rows,cols); // Header var row:int=0; var col:int=0; for each (var item:String in head) { sheet.setCell(row,col,item); col++; } // Data row=1; col=0; for each (var dataRow:Array in data) { for each (var dataCol:String in dataRow) { sheet.setCell(row,col,dataCol); col++; } col=0; row++; } // Add sheet var xls:ExcelFile = new ExcelFile(); xls.sheets.addItem(sheet); var bytes:ByteArray = xls.saveToByteArray(); // Generate file var fr:FileReference = new FileReference(); fr.save(bytes, filename); } } }
mxml代码:
<?xml version="1.0"?> <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"> <s:layout> <s:VerticalLayout/> </s:layout> <fx:Script> <![CDATA[ import es.util.FlexToExcel; import mx.collections.ArrayCollection; import spark.components.gridClasses.GridColumn; [Bindable] private var items:ArrayCollection = new ArrayCollection([ {nombre:"Andrés", apellido:"Sánchez", date:new Date()}, {nombre:"Mónica", apellido:"Sánchez", date:new Date()}, {nombre:"Agustina", apellido:"Sánchez", date:new Date()}, {nombre:"Pablo", apellido:"Sánchez", date:new Date()}, {nombre:"Magalí", apellido:"Sánchez", date:new Date()} ]); private function exportToExcel():void { FlexToExcel.exportDataGrid(dt); } private function getCompleteLabel (item:Object, column:GridColumn):String { var result:String = ""; if (item != null) { result = item.nombre + " " + item.apellido; } return result; } ]]> </fx:Script> <fx:Declarations> <s:DateTimeFormatter id="myFormatter" dateTimePattern="dd/MM/yyyy" errorText="test error!"/> </fx:Declarations> <s:DataGrid id="dt" dataProvider="{items}" width="100%" height="100%"> <s:columns> <s:ArrayList> <s:GridColumn dataField="nombre" headerText="Nombre"/> <s:GridColumn dataField="apellido" headerText="Apellido"/> <s:GridColumn headerText="Completo" labelFunction="getCompleteLabel"/> <s:GridColumn headerText="Fecha" dataField="date" itemRenderer="es.renderer.DateRenderer" formatter="{myFormatter}"/> </s:ArrayList> </s:columns> </s:DataGrid> <s:Button label="Export" click="exportToExcel();" /> </s:Application>
相关推荐
flex中dataGrid导出数据到excel中,不存在乱码问题
Flex中导出当前DataGrid中的数据。生成一个Excel文件。资源为一个简单的应用。
将flex中datagrid组件中数据导出到excel表格中。思路很简单,利用as将datagrid中的数据解析出来,传到后台java服务端处理,即可保存为excel文件。
flex通过java后台讲datagrid导出为excel
Flex的DataGrid导出Excel
AdvancedDataGrid导出复杂表头excel
将flexdatagrid的数据导出到excel 只需传入datagrid id 以及要导出的excel名称
利用ASP架构将flex中的datagrid数据导出为excel表格方式。
使用flash builder测试成功,绝对可以使用,使用的swc包都包含在里面 主要作用:使用flex把datagrid里面的数据(ArrayCollection)导出为Excel文件、CSV文件和导出到剪贴板
NULL 博文链接:https://songwensheng.iteye.com/blog/733143
flex中将dataGrid中的数据导出到excel中,不存在乱码问题
Flex DataGrid导出成excel的方法,介绍了导出的两种方式poi和as3xls
Flex3对DataGrid导入导出excel的例子
<mx:Button label="导出" click="onCreate()"/> <mx:DataGrid id="dg1" dataProvider ="{dp}"> <mx:columns> <mx:DataGridColumn width="20" headerText="" > <mx:itemRenderer> <mx:Component> <mx:CheckBox...
1、使用flex导出excel的简单实例 其中使用到flex dataGrid的全选操作
flex 导出excel工具包 用法如下: import com.as3xls.xls.ExcelFile; import com.as3xls.xls.Sheet; import mx.collections.ArrayCollection; import mx.controls.DataGrid; import mx.controls.dataGridClasses....
NULL 博文链接:https://liugang-ok.iteye.com/blog/1292390
这是一个关于flex datagrid分页,还有一个把datagrid数据导出excel的功能
其实dataGrid导出Excel很简单,但是如果是adgDataGrid导出带标题头的而且是多层标题头就麻烦了,这个例子主要就是实现adgDataGrid导出excel,很好的一个例子。
flex客户端导出excel所需的类库jar包(as3xls-1.0.1.swc)以及实例代码.支持mx.controls.DataGrid、mx.controls.AdvancedDataGrid、spark.components.DataGrid的excel导出。很不错的。