Flex 前台excel导出
来源:互联网 发布:网络切换器 编辑:程序博客网 时间:2024/05/19 19:33
一、excel.as中的Action Script 处理
view plaincopy to clipboardprint?
import mx.controls.dataGridClasses.DataGridColumn;
import mx.rpc.events.AbstractEvent;
import mx.collections.ArrayCollection;
import mx.controls.DataGrid;
import mx.formatters.DateFormatter;
private function exportDataToClipboard(dg:DataGrid , dataSet:ArrayCollection):void
{
var str:String = "";
var dgColumns:Array = dg.columns;
var tmp:String = "";
for(var i:Number=0; i<dgColumns.length;i++)
{
if(dgColumns[i].visible == true)
{
if(dgColumns[i].headerText != null)
{
str+= " " + dgColumns[i].headerText + "/t";
}
else
{
str+= " " + dgColumns[i].dataField + "/t"; ;
}
}
}
str += "/n";
//Now Loop thru the array collection
for (var j:int=0; j<dataSet.length; j++)
{
for (var k:int=0;k<dgColumns.length; k++)
{
if(dgColumns[k].visible == true){
if(dgColumns[k].headerText == "Date")
tmp = getDateFormatterForExcel().format(dataSet[j][dgColumns[k].dataField]) + "/t";
else
tmp = dataSet[j][dgColumns[k].dataField] + "/t";
if(tmp!=null && tmp.length > 0)
{
str+= tmp;
}
}
}
str += "/n";
}
trace(str);
System.setClipboard(str);
}
private function copyAndOpen(dg:DataGrid,dataSet:ArrayCollection):void
{
exportDataToClipboard(dg,dataSet);
ExternalInterface.call("openExcel");
}
private function getDateFormatterForExcel():DateFormatter{
var dateFormatter:DateFormatter = new mx.formatters.DateFormatter();
dateFormatter.formatString="YYYYMMDD";
return dateFormatter;
}
import mx.controls.dataGridClasses.DataGridColumn;
import mx.rpc.events.AbstractEvent;
import mx.collections.ArrayCollection;
import mx.controls.DataGrid;
import mx.formatters.DateFormatter;
private function exportDataToClipboard(dg:DataGrid , dataSet:ArrayCollection):void
{
var str:String = "";
var dgColumns:Array = dg.columns;
var tmp:String = "";
for(var i:Number=0; i<dgColumns.length;i++)
{
if(dgColumns[i].visible == true)
{
if(dgColumns[i].headerText != null)
{
str+= " " + dgColumns[i].headerText + "/t";
}
else
{
str+= " " + dgColumns[i].dataField + "/t"; ;
}
}
}
str += "/n";
//Now Loop thru the array collection
for (var j:int=0; j<dataSet.length; j++)
{
for (var k:int=0;k<dgColumns.length; k++)
{
if(dgColumns[k].visible == true){
if(dgColumns[k].headerText == "Date")
tmp = getDateFormatterForExcel().format(dataSet[j][dgColumns[k].dataField]) + "/t";
else
tmp = dataSet[j][dgColumns[k].dataField] + "/t";
if(tmp!=null && tmp.length > 0)
{
str+= tmp;
}
}
}
str += "/n";
}
trace(str);
System.setClipboard(str);
}
private function copyAndOpen(dg:DataGrid,dataSet:ArrayCollection):void
{
exportDataToClipboard(dg,dataSet);
ExternalInterface.call("openExcel");
}
private function getDateFormatterForExcel():DateFormatter{
var dateFormatter:DateFormatter = new mx.formatters.DateFormatter();
dateFormatter.formatString="YYYYMMDD";
return dateFormatter;
}
二、调用Action Script的mxml
view plaincopy to clipboardprint?
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="ascript.*" width="100%" height="100%"
title="Export To Excel" showCloseButton="true" close="removePopUp()" borderAlpha="1" borderThicknessRight="2" borderThicknessLeft="2"
borderThicknessBottom="5" resizeEffect="on" includeInLayout="true" creationComplete="initApp();">
<!--REMOTE OBJECTS -->
<mx:RemoteObject id="pnlViewHandler" destination="pnlViewHandler" result="resultHandler(event)" showBusyCursor="true" channelSet="{HostUtil.getChannelSet()}">
</mx:RemoteObject>
<mx:Script>
<!--[CDATA[
include "../ascript/excel.as";
[Bindable]
public var dataSet:ArrayCollection;
private function initApp():void{
var call:Object = null;
call = pnlViewHandler.searchDataForDataGrid(param1,param2,param3);
call.marker = "searchDataForDataGrid";
}
private function resultHandler(event:ResultEvent):void{
var call:Object = event.token;
if(call.marker == "searchDataForDataGrid"){
dataSet = event.result as ArrayCollection;
}
}
private function removePopUp():void{
PopUpManager.removePopUp(this);
}
]]-->
</mx:Script>
<mx:DataGrid name="dgClient" dataProvider="{dataSet}" id="dgClient" width="100%" height="100%" sortableColumns="true"
wordWrap="false" resizableColumns="true" enabled="true" horizontalScrollPolicy="auto" verticalScrollPolicy="auto"
lockedColumnCount="3" headerStyleName="headerStyle" allowDragSelection="false" buttonMode="false" moveEffect="on"
focusInEffect="on" headerColors="#00376F" horizontalGridLineColor="#004080" fontWeight="normal" fontStyle="normal"
fontSize="11" paddingRight="2" paddingLeft="8" textAlign="right">
<local:columns>
<mx:DataGridColumn headerText="Number" id="Number" dataField="Number" width="100" />
<mx:DataGridColumn headerText="Name" id="Name" dataField="Name" width="100" />
<mx:DataGridColumn headerText="Account" id="Acct" dataField="Acct" width="100" editable="false" />
</local:columns>
</mx:DataGrid>
<mx:LinkButton label="Export To Excel" click="copyAndOpen(dgClient,dataSet)" icon="@Embed('../images/excel.gif')" />
</mx:TitleWindow>
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="ascript.*" width="100%" height="100%"
title="Export To Excel" showCloseButton="true" close="removePopUp()" borderAlpha="1" borderThicknessRight="2" borderThicknessLeft="2"
borderThicknessBottom="5" resizeEffect="on" includeInLayout="true" creationComplete="initApp();">
<!--REMOTE OBJECTS -->
<mx:RemoteObject id="pnlViewHandler" destination="pnlViewHandler" result="resultHandler(event)" showBusyCursor="true" channelSet="{HostUtil.getChannelSet()}">
</mx:RemoteObject>
<mx:Script>
<!--[CDATA[
include "../ascript/excel.as";
[Bindable]
public var dataSet:ArrayCollection;
private function initApp():void{
var call:Object = null;
call = pnlViewHandler.searchDataForDataGrid(param1,param2,param3);
call.marker = "searchDataForDataGrid";
}
private function resultHandler(event:ResultEvent):void{
var call:Object = event.token;
if(call.marker == "searchDataForDataGrid"){
dataSet = event.result as ArrayCollection;
}
}
private function removePopUp():void{
PopUpManager.removePopUp(this);
}
]]-->
</mx:Script>
<mx:DataGrid name="dgClient" dataProvider="{dataSet}" id="dgClient" width="100%" height="100%" sortableColumns="true"
wordWrap="false" resizableColumns="true" enabled="true" horizontalScrollPolicy="auto" verticalScrollPolicy="auto"
lockedColumnCount="3" headerStyleName="headerStyle" allowDragSelection="false" buttonMode="false" moveEffect="on"
focusInEffect="on" headerColors="#00376F" horizontalGridLineColor="#004080" fontWeight="normal" fontStyle="normal"
fontSize="11" paddingRight="2" paddingLeft="8" textAlign="right">
<local:columns>
<mx:DataGridColumn headerText="Number" id="Number" dataField="Number" width="100" />
<mx:DataGridColumn headerText="Name" id="Name" dataField="Name" width="100" />
<mx:DataGridColumn headerText="Account" id="Acct" dataField="Acct" width="100" editable="false" />
</local:columns>
</mx:DataGrid>
<mx:LinkButton label="Export To Excel" click="copyAndOpen(dgClient,dataSet)" icon="@Embed('../images/excel.gif')" />
</mx:TitleWindow>
三、第二步中RemoteObject调用的HostUtil.as
view plaincopy to clipboardprint?
package ascript{
public class HostUtil{
import mx.core.Application;
import mx.messaging.channels.SecureAMFChannel;
import mx.messaging.Channel;
import mx.messaging.channels.AMFChannel;
import mx.messaging.ChannelSet;
private static const REQUEST_SCHEME:String = "http";
private static const SERVER_NAME:String = "127.0.0.1";
private static const SERVER_PORT:String = "8700";
private static const CONTEXT_ROOT:String = "/pnlWebApp";
public static function getHostURL():String{
if(Application.application.parameters.hostURL != null){
return Application.application.parameters.hostURL+Application.application.parameters.hostContext;
}else{
return REQUEST_SCHEME+"://"+SERVER_NAME+":"+SERVER_PORT+CONTEXT_ROOT;
}
}
public static function getHostRootURL():String{
if(Application.application.parameters.hostURL != null){
return Application.application.parameters.hostURL;
}else{
return REQUEST_SCHEME+"://"+SERVER_NAME+":"+SERVER_PORT;
}
}
public static function getChannelSet():ChannelSet{
var cs:ChannelSet = new ChannelSet();
//HTTP Request
var amfChannel:Channel = new AMFChannel("my-amf", getHostURL()+"/messagebroker/amf");
cs.addChannel(amfChannel);
//HTTPS Request
//var secureAmfChannel:Channel = new SecureAMFChannel("my-secure-amf", getHostURL()+"/messagebroker/amfsecure");
//cs.addChannel(secureAmfChannel);
return cs;
}
}
}
package ascript{
public class HostUtil{
import mx.core.Application;
import mx.messaging.channels.SecureAMFChannel;
import mx.messaging.Channel;
import mx.messaging.channels.AMFChannel;
import mx.messaging.ChannelSet;
private static const REQUEST_SCHEME:String = "http";
private static const SERVER_NAME:String = "127.0.0.1";
private static const SERVER_PORT:String = "8700";
private static const CONTEXT_ROOT:String = "/pnlWebApp";
public static function getHostURL():String{
if(Application.application.parameters.hostURL != null){
return Application.application.parameters.hostURL+Application.application.parameters.hostContext;
}else{
return REQUEST_SCHEME+"://"+SERVER_NAME+":"+SERVER_PORT+CONTEXT_ROOT;
}
}
public static function getHostRootURL():String{
if(Application.application.parameters.hostURL != null){
return Application.application.parameters.hostURL;
}else{
return REQUEST_SCHEME+"://"+SERVER_NAME+":"+SERVER_PORT;
}
}
public static function getChannelSet():ChannelSet{
var cs:ChannelSet = new ChannelSet();
//HTTP Request
var amfChannel:Channel = new AMFChannel("my-amf", getHostURL()+"/messagebroker/amf");
cs.addChannel(amfChannel);
//HTTPS Request
//var secureAmfChannel:Channel = new SecureAMFChannel("my-secure-amf", getHostURL()+"/messagebroker/amfsecure");
//cs.addChannel(secureAmfChannel);
return cs;
}
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lujinan858/archive/2009/07/15/4346383.aspx
- Flex 前台excel导出
- flex 前台导出Excel
- excel前台导出json
- flex导出excel
- Flex EXCEL导出
- FLEX中导出Excel
- Flex导出Excel
- Flex导出Excel (as3xls)
- flex导出excel
- flex导出excel
- MVC前台table导出excel
- Extjs4---grid导出excel文件,前台导出
- FLex中 DataGrid导出Excel
- Flex(ActionScript)导出到Excel
- flex导出excel的注意事项
- FLex中 DataGrid导出Excel
- 前台js 使用jquery导出excel
- 前台EXTJS后台JAVA导出EXCEL
- IE 条件编译 conditional compilation
- 五线谱简介
- 美声唱法
- oracle ebs
- 今天又回来写日记了。
- Flex 前台excel导出
- 民族唱法(folk style singing )
- OM API例子
- 通俗唱法
- TreeView控件在IE7不能正常显示
- Cloneable、Comparable、Comparator的应用
- 国家精品课程(地理信息系统专业绝对收藏)
- 中国现象学网网站
- 原生态