首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

Flex导出Excel如何做?要详细代码和说明。多谢

2012-02-04 
Flex导出Excel怎么做?要详细代码和说明。谢谢如题。[解决办法]给你一个网上的例子,希望对你有帮助,不过里面

Flex导出Excel怎么做?要详细代码和说明。谢谢
如题。

[解决办法]
给你一个网上的例子,希望对你有帮助,不过里面的代码写的不太好,很乱。

JScript code
/** * Simple script to convert a Datagrid to a HTML table and then  * pass it on to an external excel exporter * */    //Libs that are mostly used //(only a number are necessary for the datagrid conversion and export)import flash.errors.*;import flash.events.*;import flash.external.*;import flash.net.URLRequest;import flash.net.URLVariables;/** * Convert the datagrid to a html table * Styling etc. can be done externally *  * @param: dg Datagrid Contains the datagrid that needs to be converted * @returns: String */private function convertDGToHTMLTable(dg:DataGrid):String {    //Set default values    var font:String = dg.getStyle('fontFamily');    var size:String = dg.getStyle('fontSize');    var str:String = '';    var colors:String = '';    var style:String = 'style="font-family:'+font+';font-size:'+size+'pt;"';                    var hcolor:Array;        //Retrieve the headercolor    if(dg.getStyle("headerColor") != undefined) {        hcolor = [dg.getStyle("headerColor")];    } else {        hcolor = dg.getStyle("headerColors");    }                        //Set the htmltabel based upon knowlegde from the datagrid    str+= '<table width="'+dg.width+'" border="1"><thead><tr width="'+dg.width+'" style="background-color:#' +Number((hcolor[0])).toString(16)+'">';        //Set the tableheader data (retrieves information from the datagrid header                    for(var i:int = 0;i<dg.columns.length;i++) {        colors = dg.getStyle("themeColor");                    if(dg.columns[i].headerText != undefined) {            str+="<th "+style+">"+dg.columns[i].headerText+"</th>";        } else {            str+= "<th "+style+">"+dg.columns[i].dataField+"</th>";        }    }    str += "</tr></thead><tbody>";    colors = dg.getStyle("alternatingItemColors");        //Loop through the records in the dataprovider and     //insert the column information into the table    for(var j:int =0;j<dg.dataProvider.length;j++) {                            str+="<tr width=\""+Math.ceil(dg.width)+"\">";                    for(var k:int=0; k < dg.columns.length; k++) {                        //Do we still have a valid item?                                    if(dg.dataProvider.getItemAt(j) != undefined && dg.dataProvider.getItemAt(j) != null) {                                //Check to see if the user specified a labelfunction which we must                //use instead of the dataField                if(dg.columns[k].labelFunction != undefined) {                    str += "<td width=\""+Math.ceil(dg.columns[k].width)+"\" "+style+">"+dg.columns[k].labelFunction(dg.dataProvider.getItemAt(j),dg.columns[k].dataField)+"</td>";                                    } else {                    //Our dataprovider contains the real data                    //We need the column information (dataField)                    //to specify which key to use.                    str += "<td width=\""+Math.ceil(dg.columns[k].width)+"\" "+style+">"+dg.dataProvider.getItemAt(j)[dg.columns[k].dataField]+"</td>";                }            }        }        str += "</tr>";    }    str+="</tbody></table>";    return str;}/** * Load a specific datagrid into Excel * This method passes the htmltable string to an backend script which then * offers the excel download to the user. * The reason for not using a copy to clipboard and then javascript to * insert it into Excel is that this mostly will fail because of the user * setup (Webbrowser configuration). *  * @params: dg Datagrid The Datagrid that will be loaded into Excel * @params: url String The location of the excel export file */private function loadDGInExcel(dg:DataGrid,url:String):void {    //Pass the htmltable in a variable so that it can be delivered    //to the backend script    var variables:URLVariables = new URLVariables();     variables.htmltable    = convertDGToHTMLTable(dg);        //Setup a new request and make sure that we are     //sending the data through a post    var u:URLRequest = new URLRequest(url);    u.data = variables; //Pass the variables    u.method = URLRequestMethod.POST; //Don't forget that we need to send as POST        //Navigate to the script    //We can use _self here, since the script will through a filedownload header    //which results in offering a download to the user (and still remaining in you Flex app.)    navigateToURL(u,"_self");} 

热点排行