将Flex Datagrid导出到Excel

怎样将DataGrid的数据表及设定导出到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的输出。

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

发表评论