思路比较简单:
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的输出。