`
fxtayj
  • 浏览: 11445 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

flex4:DataGrid导出到Excel

阅读更多

原文出自: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>

 

分享到:
评论
2 楼 linfeng0169 2016-01-18  
-1061: 调用可能未定义的方法 exportDataGrid (通过 static 类型 Class 引用)。
在 FlexToExcel.exportDataGrid(dt); 这个地方报个错!
1 楼 shuiyunbing 2015-01-14  
请问单元格样式怎么处理。

相关推荐

    flex中dataGrid导出数据到excel中

    flex中dataGrid导出数据到excel中,不存在乱码问题

    Flex中组件datagrid导出Excel

    本主题将深入探讨如何在Flex中实现组件DataGrid的数据导出功能,使其能够生成Excel文件供用户下载和处理。 DataGrid是Flex中常用的一个组件,它用于展示结构化数据,通常用于表格形式的展示。在Flex中,我们可以...

    将Flex DataGrid数据导出到Excel中

    本教程将详细介绍如何实现从Flex DataGrid导出数据到Excel的功能。 首先,让我们了解Flex DataGrid。它是一个强大的组件,用于显示二维数据集,通常包含可排序和可分页的列。DataGrid可以绑定到各种数据源,包括...

    flex通过java后台讲datagrid导出为excel

    导出Flex Datagrid到Excel的过程通常涉及后端服务器的参与,因为Flex本身不支持直接生成Excel文件。在这种情况下,Java后端作为一个中间层,接收Flex前端发送的Datagrid数据,然后转换成Excel格式。这个过程涉及到几...

    Flex的DataGrid导出Excel

    而“Flex的DataGrid导出Excel”这个主题涉及到的是如何将DataGrid中的数据显示到Microsoft Excel文件中,以便用户可以进一步处理、分析或共享这些数据。这个过程通常分为几个关键步骤: 1. **数据准备**:首先,你...

    flex 把datagrid的内容导出到Excel

    本文将深入探讨如何使用Flex来实现一个功能,即把Datagrid组件中的内容导出到Excel文件。 Datagrid是Flex中的一个核心组件,用于展示表格数据。它提供了丰富的功能,如排序、分页和自定义列显示。然而,有时用户...

    flex导出复杂excel

    AdvancedDataGrid导出复杂表头excel

    flex datagrid 导出excel的as

    将flexdatagrid的数据导出到excel 只需传入datagrid id 以及要导出的excel名称

    利用ASP架构将flex中的datagrid数据导出为excel表格方式。

    总之,利用ASP架构导出Flex DataGrid数据到Excel,需要在客户端和服务器端进行协调,涉及数据转换、服务器文件操作和通信协议等多个环节。通过合理的设计和优化,可以实现高效且可靠的导出功能。

    Flex datagrid导出为Excel文件、CSV文件和到剪贴板

    使用flash builder测试成功,绝对可以使用,使用的swc包都包含在里面 主要作用:使用flex把datagrid里面的数据(ArrayCollection)导出为Excel文件、CSV文件和导出到剪贴板

    flex中将dataGrid中的数据导出到excel中

    flex中将dataGrid中的数据导出到excel中,不存在乱码问题

    利用java 后台导出Flex DataGrid为Excel

    总的来说,将Flex DataGrid导出为Excel涉及前后端的协同工作,包括数据序列化、Java中的Excel文件生成以及网络通信。掌握这些知识点,能帮助你实现高效、灵活的数据导出功能。在实际开发中,根据项目需求和性能要求...

    flex datagrid to excel

    综上所述,实现“flex datagrid to excel”功能,你需要理解Flex的DataGrid组件、数据处理、文件操作以及ActionScript编程,将DataGrid中的数据转换为Excel可读格式,并通过用户交互将数据导出到本地文件系统。

    flex导出excel的代码

    &lt;mx:Button label="导出" click="onCreate()"/&gt; &lt;mx:DataGrid id="dg1" dataProvider ="{dp}"&gt; &lt;mx:columns&gt; &lt;mx:DataGridColumn width="20" headerText="" &gt; &lt;mx:itemRenderer&gt; &lt;mx:Component&gt; &lt;mx:CheckBox...

    FLEX导出EXCEL支持合并隐藏单元格

    2. **导出Excel**:这是指将数据从Flex应用程序中导出到Microsoft Excel格式的功能。Excel是全球广泛使用的电子表格软件,支持复杂的数据分析和可视化。将数据导出至Excel可以便于用户进一步分析或与其他系统集成。 ...

    flex datagrid 数据保存到excel以及从excel读取数据

    要将Flex Datagrid的数据保存到Excel,我们需要实现一个数据转换和导出的过程。这通常涉及到将ArrayCollection或其他数据结构转换为Excel兼容的格式,然后利用特定的库或API写入到Excel文件。在提供的标签“源码”中...

    Flex3ReadWriteExcel(flex3导入导出excel表格)

    本知识点主要聚焦于Flex3如何实现数据的读写操作,特别是与Microsoft Excel文件的交互,即“Flex3ReadWriteExcel(flex3导入导出excel表格)”。这在实际业务场景中非常常见,例如数据分析、报表生成以及数据交换等。 ...

    Flex导出Excel之as3xls(包括datagrid全选功能)

    描述中提到的“包括datagrid全选功能”,意味着在实现导出Excel的过程中,不仅包含了基本的数据导出,还考虑到了用户可能在DataGrid中进行了全选操作。在Flex中,DataGrid的全选功能可以通过监听它的change事件,...

Global site tag (gtag.js) - Google Analytics