将Flex Datagrid导出到Excel

本文介绍了一种将Flex DataGrid转换为Excel文件的方法。主要步骤包括:将DataGrid输出为HTML字符串,通过URLVariables和URLLoader发送数据到服务器,最后在服务器端生成Excel文件。适用于大量数据处理场景。

思路比较简单:

1. 将DataGrid输出为对应的Html字符串,一个DataGrid对应一个<table></table>,DataGridColumn的headerText属性对应<th></th>,DataGrid的一行对应一个<tr></tr>,DataGrid的一个单元格对应一个<td></td>;另外我们还可以使用getStyle方法将当前的样式属性值与table的样式属性值对应;

2.使用URLVariables 类和URLLoader类将字符串变量发送到服务器端脚本。详见:使用URLLoader类和URLVariables类实现AS3与服务器通信

3.在服务器端我们只是简单地加一个文件头,再将Flex端发送的字符串在客户端打印出来。如果使用aps.net,请validateRequest设定为false;

说明:如果DataGrid的数据庞大,样式很多,生成的html字符串会很大,因此发送到服务器端输出Excel的效率不高。因此我们最好是只将DataGrid的过滤条件及样式发送到服务器端,然后在服务器端使用html字符串输出Excel。当然在服务器端使用Jexcel或POI API可以更好地控制Excel的输出。

点击此处查看最终效果,点击此处下载源文件。

贡献给热爱学习的人 (示例中含有详细的代码及说明) 1、生成默认的基本对话框工程,工程名为ProjectX。 2、添加FlexGrid1控件:Ctrl+W打开类向导,工程->增加到工程->Components and Contols->Registered ActiveX Controls->Microsoft FlexGrid Control ,version6.0 ->Insert 3、为IDC_DATAGRID1关联变量m_FlexGrid1 4、Ctrl+W打开类向导,新建一个类,选择从Type Library添加。如果是Office 2003,添加的是Office安装路径下的Excel.exe (在Office 2000环境下添加的应该是Excel9.OLB) 。在弹出的Confirm Classes里选择_Application,Workbooks,_Workbook,Worksheets ,_Worksheet,Range ,Font 这几个类,并确定新生成的.CPP和.h文件的名称为Excel.cpp和Excel.h,然后确定。 5、添加类CColorButton:Ctrl+W打开类向导->点击Member Variables->Add Class->new->name:CColorButton Base Class:CButton->Ok 6、添加类CColorButton的成员函数DrawIten和PreSubclssWindow 7、添加ColorButton.h和ColorButton.cpp的实现代码 8、"导出Excel"按钮关联类型为CColorButton的变量(Vaiable Type:CColorButton):m_btn1 9、右键点击ProjectX resources->引入:文件类型选择所有文件,依次引入5个按钮位图,程序将自动添加5个位图资源,然后设置位图资源的属性。 10、在stdafx.h中添加导入ADO库 11、在ProjectXDlg.h中添加智能指针变量等。 12、在ProjectXDlg.cpp中添加头文件引用:#include "Excel.h" 13、在ProjectXDlg.cpp的OnInitDialog()中添加初始化代码等。 14、双击导出Excel按钮,添加单击响应函数及功能代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值