原文出自: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文件供用户下载和处理。 DataGrid是Flex中常用的一个组件,它用于展示结构化数据,通常用于表格形式的展示。在Flex中,我们可以...
本教程将详细介绍如何实现从Flex DataGrid导出数据到Excel的功能。 首先,让我们了解Flex DataGrid。它是一个强大的组件,用于显示二维数据集,通常包含可排序和可分页的列。DataGrid可以绑定到各种数据源,包括...
导出Flex Datagrid到Excel的过程通常涉及后端服务器的参与,因为Flex本身不支持直接生成Excel文件。在这种情况下,Java后端作为一个中间层,接收Flex前端发送的Datagrid数据,然后转换成Excel格式。这个过程涉及到几...
而“Flex的DataGrid导出Excel”这个主题涉及到的是如何将DataGrid中的数据显示到Microsoft Excel文件中,以便用户可以进一步处理、分析或共享这些数据。这个过程通常分为几个关键步骤: 1. **数据准备**:首先,你...
本文将深入探讨如何使用Flex来实现一个功能,即把Datagrid组件中的内容导出到Excel文件。 Datagrid是Flex中的一个核心组件,用于展示表格数据。它提供了丰富的功能,如排序、分页和自定义列显示。然而,有时用户...
AdvancedDataGrid导出复杂表头excel
将flexdatagrid的数据导出到excel 只需传入datagrid id 以及要导出的excel名称
总之,利用ASP架构导出Flex DataGrid数据到Excel,需要在客户端和服务器端进行协调,涉及数据转换、服务器文件操作和通信协议等多个环节。通过合理的设计和优化,可以实现高效且可靠的导出功能。
使用flash builder测试成功,绝对可以使用,使用的swc包都包含在里面 主要作用:使用flex把datagrid里面的数据(ArrayCollection)导出为Excel文件、CSV文件和导出到剪贴板
flex中将dataGrid中的数据导出到excel中,不存在乱码问题
总的来说,将Flex DataGrid导出为Excel涉及前后端的协同工作,包括数据序列化、Java中的Excel文件生成以及网络通信。掌握这些知识点,能帮助你实现高效、灵活的数据导出功能。在实际开发中,根据项目需求和性能要求...
综上所述,实现“flex datagrid to excel”功能,你需要理解Flex的DataGrid组件、数据处理、文件操作以及ActionScript编程,将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...
2. **导出Excel**:这是指将数据从Flex应用程序中导出到Microsoft Excel格式的功能。Excel是全球广泛使用的电子表格软件,支持复杂的数据分析和可视化。将数据导出至Excel可以便于用户进一步分析或与其他系统集成。 ...
要将Flex Datagrid的数据保存到Excel,我们需要实现一个数据转换和导出的过程。这通常涉及到将ArrayCollection或其他数据结构转换为Excel兼容的格式,然后利用特定的库或API写入到Excel文件。在提供的标签“源码”中...
本知识点主要聚焦于Flex3如何实现数据的读写操作,特别是与Microsoft Excel文件的交互,即“Flex3ReadWriteExcel(flex3导入导出excel表格)”。这在实际业务场景中非常常见,例如数据分析、报表生成以及数据交换等。 ...
描述中提到的“包括datagrid全选功能”,意味着在实现导出Excel的过程中,不仅包含了基本的数据导出,还考虑到了用户可能在DataGrid中进行了全选操作。在Flex中,DataGrid的全选功能可以通过监听它的change事件,...