加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex toExcel

发布时间:2020-12-15 05:15:41 所属栏目:百科 来源:网络整理
导读:package com.wks.util { ?import flash.net.URLRequestMethod; ?import flash.net.navigateToURL; ? ?import mx.controls.AdvancedDataGrid; ?import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn; ?import mx.controls.advancedDataGridCla

package com.wks.util { ?import flash.net.URLRequestMethod; ?import flash.net.navigateToURL; ? ?import mx.controls.AdvancedDataGrid; ?import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn; ?import mx.controls.advancedDataGridClasses.AdvancedDataGridColumnGroup; ?import mx.controls.dataGridClasses.DataGridColumn; ? ?public class ToExcel ?{ ??public function ToExcel() ??{ ??} ??import flash.errors.*; ??import flash.events.*; ??import flash.external.*; ??import flash.net.URLRequest; ??import flash.net.URLVariables; ??import mx.controls.DataGrid;? ?? ??private var myReg:RegExp = /undefined/gi; ??/**? ?? * 作者:IT小金? ?? * 时间:2011-09-07? ?? * 功能:FLex DataGird生成HTML 导出Excel? ?? */ ?? ??/*将DataGird导出成HTML格式*/ ??public function convertDGToHTMLTable(dg:DataGrid,tableName:String):String {? ??? ???//设置默认参数? ???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; ??? ???//设置标题行颜色? ???var styleName:Object = dg.styleName; ???if(dg.getStyle("headerColor") != undefined) { ????hcolor = [dg.getStyle("headerColor")]; ???} else { ????hcolor = dg.getStyle("headerColors"); ???} ???//根据datagrid设置基础结构 ???str+='<table border="1" style="text-align:center"><tr><td>'+tableName+'</td></tr><tr><td>'; ???if(hcolor) ????str+= '<table style="text-align:center" width="'+dg.width+'" border="1"><thead><tr width="'+dg.width+'" style="background-color:#' +Number((hcolor[0])).toString(16)+'">';? ???else ????str+= '<table style="text-align:center" width="'+dg.width+'" border="1"><thead><tr width="'+dg.width+'" >';? ???//设置列头??????????? ???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("alternatingRowColors");? ???//设置单元格数据,数据遍历DataGird? ???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++) {? ?????if(dg.dataProvider.getItemAt(j) != undefined && dg.dataProvider.getItemAt(j) != null) {? ??????if(!dg.columns[k].dataField) { ???????str += "<td width=""+Math.ceil(dg.columns[k].width)+"" "+style+"></td>"; ??????} ??????else 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 {? ???????str += "<td width=""+Math.ceil(dg.columns[k].width)+"" "+style+">"+dg.dataProvider.getItemAt(j)[dg.columns[k].dataField]+"</td>";? ??????} ?????} ????} ????str += "</tr>"; ???} ???str+="</tbody></table></td></tr></table>"; ??? ???str = str.replace(myReg,""); ???return str; ??} ?? ??public function convertADGToHTMLTable(dg:AdvancedDataGrid,tableName:String):String {? ??? ???//设置默认参数? ???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; ??? ???//设置标题行颜色? ???if(dg.getStyle("headerColor") != undefined) {? ????hcolor = [dg.getStyle("headerColor")];? ???} else {? ????hcolor = dg.getStyle("headerColors");? ???}???????????????? ???//根据datagrid设置基础结构? ???str+= '<table border="1" style="text-align:center"><tr><td>'+tableName+'</td></tr><tr><td><table style="text-align:center" width="'+dg.width+'" border="1"><thead><tr width="'+dg.width+'" style="background-color:#' +Number((hcolor[0])).toString(16)+'">';? ???//得到ColumnGroup ???var gColLength:int = dg.groupedColumns.length; ???var colLength:int = dg.columnCount; ???//设置列头 ???for(var i:int = 0;i<dg.groupedColumns.length;i++) {? ????colors = dg.getStyle("themeColor");? ????if(dg.groupedColumns[i].headerText != undefined) { ?????if(dg.groupedColumns[i] as AdvancedDataGridColumnGroup) { ??????str+='<th><table style="text-align:center" border="1" width="100%" height="100%">'; ??????var adgcg:AdvancedDataGridColumnGroup = dg.groupedColumns[i]; ??????str+="<tr><th colspan=""+adgcg.children.length+"" >"+adgcg.headerText+"</th><tr/>"; ??????if(adgcg.children) { ???????str+='<tr height="100%">'; ???????for(var k:int=0; k<adgcg.children.length; k++) { ????????str+="<th>"+adgcg.children[k].headerText+"</th>"; ???????} ???????str+="</tr>"; ??????} ??????str+="</table></th>"; ?????} ?????else if(dg.groupedColumns[i] as AdvancedDataGridColumn) ?????{ ??????str+="<th "+style+">"+dg.groupedColumns[i].headerText+"</th>";? ?????} ????} else {? ?????str+= "<th "+style+">"+dg.groupedColumns[i].dataField+"</th>";? ????}? ???}? ???str += "</tr></thead><tbody>";? ???colors = dg.getStyle("alternatingRowColors");? ???//设置单元格数据,数据遍历DataGird ???var adc:AdvancedDataGridColumn = new AdvancedDataGridColumn; ???var dc:DataGridColumn = new DataGridColumn; ???for(var j:int =0;j<dg.dataProvider.length;j++) { ????str+="<tr width=""+Math.ceil(dg.width)+"">"; ????for(var k:int=0; k < dg.groupedColumns.length; k++) { ?????if(dg.dataProvider.getItemAt(j) != undefined && dg.dataProvider.getItemAt(j) != null) { ??????if(dg.groupedColumns[k] as AdvancedDataGridColumnGroup) { ???????str+='<td><table style="text-align:center" border="1" width="100%" height="100%">'; ???????var adgcg:AdvancedDataGridColumnGroup = dg.groupedColumns[k]; ???????if(adgcg.children.length == 1) ???????{ ???????} else { ????????str+="<tr>"; ????????for(var m:int=0; m<adgcg.children.length; m++) { ?????????if(!adgcg.children[m].dataField) ?????????{ ??????????str += "<td width=""+Math.ceil(adgcg.children[m].width)+"" "+style+"></td>"; ?????????} ?????????else if(adgcg.children[m].labelFunction != undefined) { ??????????str+="<td width=""+Math.ceil(adgcg.children[m].width)+"" "+style+">"+adgcg.children[m].labelFunction(dg.dataProvider.getItemAt(j),adgcg.children[m].dataField)+"</td>"; ?????????} else { ??????????str+="<td width=""+Math.ceil(adgcg.children[m].width)+"" "+style+">"+dg.dataProvider.getItemAt(j)[adgcg.children[m].dataField]+"</td>"; ?????????} ????????} ????????str+="</tr>"; ???????} ???????str+="</table></td>"; ??????} ??????else if(dg.groupedColumns[k] as AdvancedDataGridColumn) ??????{ ???????if(!dg.groupedColumns[k].dataField) ???????{ ????????str += "<td width=""+Math.ceil(dg.groupedColumns[k].width)+"" "+style+"></td>"; ???????} ???????else if(dg.groupedColumns[k].labelFunction != undefined) { ????????str += "<td width=""+Math.ceil(dg.groupedColumns[k].width)+"" "+style+">"+dg.groupedColumns[k].labelFunction(dg.dataProvider.getItemAt(j),dg.groupedColumns[k].dataField)+"</td>"; ???????} ???????else { ????????str += "<td width=""+Math.ceil(dg.groupedColumns[k].width)+"" "+style+">"+dg.dataProvider.getItemAt(j)[dg.groupedColumns[k].dataField]+"</td>"; ???????} ??????} ?????} ????} ????str += "</tr>"; ???} ???str+="</tbody></table></td></tr></table>"; ??? ???str = str.replace(myReg,""); ???return str; ??} ?? ??//接Asp。net中 ashx一般处理程序,输出html成Excel文件? ??public function loadDGInExcel(dg:DataGrid,url:String,titleStr:String):void { ???var variables:URLVariables = new URLVariables(); ???variables.htmltable = convertDGToHTMLTable(dg,titleStr); ???var u:URLRequest = new URLRequest(url); ???u.data = variables; ???u.method = URLRequestMethod.POST; ???navigateToURL(u,"_self"); ??} ?? ??public function loadADGInExcel(adg:AdvancedDataGrid,titleStr:String):void { ???var variables:URLVariables = new URLVariables(); ???variables.htmltable = convertADGToHTMLTable(adg,"_self"); ??} ?} ?/* asp端代码 ?<%@ WebHandler Language="C#" Class="JinExcelExport" %> ?using System; ?using System.Web; ? ?public class JinExcelExport : IHttpHandler { ?public void ProcessRequest (HttpContext context) { ?context.Response.ContentType = "application/vnd.ms-excel"; ?context.Response.AddHeader("Content-Disposition",?string.Format("attachment;filename=ExportExcel.xls")); ?context.Response.Write(context.Request.Form["htmltable"]); ?} ? ?public bool IsReusable { ?get { ?return false; ?} ?}*/ ? ? ?/*import flash.system.System; ?import com.mycompany.dto.SaleDTO; ? ?public function exportAsTSVtoClipBoard():void ?{ ?var TSVString:String = ""; ? ?// Run through each field to create the column headers row ? ?TSVString += "Buyer name" + "t"; ?TSVString += "Buyer id" + "t"; ?TSVString += "Buyer address" + "t"; ?TSVString += "Gross Amount" + "t"; ?TSVString += "VAT AMount" + "t"; ?TSVString += "Net Amount" + "t"; ? ?// Line break ?TSVString += "t" + "t" + "t" + "t" + "t" + "n"; ? ?// Run through each datagrid row ? ?for each(var item:SaleDTO in this.model.sales) ?{ ?TSVString += item.buyerName + "t"; ?TSVString += item.buyerId + "t"; ?TSVString += item.buyerAddress + "t"; ?TSVString += this.numberFormatter.format(item.grossAmount) + "t"; ?TSVString += this.numberFormatter.format(item.vatAmount) + "t"; ?TSVString += this.numberFormatter.format(item.netAmount) + "n"; ?} ? ?// Copy the TSV string to the clipboard ?System.setClipboard(TSVString); ?}*/ }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读