FLEX에서 DataGrid Excel 내보내기(웹 버전, AIR 제외)
7150 단어 datagrid
FLEX에서 DataGrid Excel 내보내기
Flex의 웹 응용 프로그램은 데이터가 Excel을 내보내야 하는 경우가 많습니다.이전 처리 방식: Flex의 DataGrid 데이터가 C#에 전송되고 서버에서 처리하여 Excel 파일을 생성한 다음 생성된 파일 주소를 Flex로 전송하여 다운로드합니다.
이렇게 하면 프로그래밍 실현이 비교적 번거로울 뿐만 아니라 속도도 느리다. 지금은 Flex를 통해 Html 형식의 문자열을 직접 생성한 다음에 서비스 측의 asxh 파일에 전송하여 클라이언트 브라우저로 출력할 수 있다. 다음은 코드
import flash.errors.*;
import flash.events.*;
import flash.external.*;
import flash.net.URLRequest;
import flash.net.URLVariables;
/**
* :IT
* :2011-09-07
* :FLex DataGird HTML Excel
*/
/* DataGird HTML */
private function convertDGToHTMLTable(dg:DataGrid):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 width="'+dg.width+'" border="1"><thead><tr width="'+dg.width+'" style="background-color:#' +Number((hcolor[0])).toString(16)+'">';
//
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].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>";
return str;
}
/* Asp。net ashx , html Excel
*/
private function loadDGInExcel(dg:DataGrid,url:String):void {
var variables:URLVariables = new URLVariables();
variables.htmltable = convertDGToHTMLTable(dg);
var u:URLRequest = new URLRequest(url);
u.data = variables;
u.method = URLRequestMethod.POST;
navigateToURL(u,"_self");
}
다음은net에서 만든 일반 처리 프로그램, 코드는 다음과 같습니다. 1 <%@ WebHandler Language="C#" Class="JinExcelExport"%>
2
3 using System;
4 using System.Web;
5
6 publicclass JinExcelExport : IHttpHandler {
7
8 publicvoid ProcessRequest (HttpContext context) {
9
10 context.Response.ContentType ="application/vnd.ms-excel";
11 context.Response.AddHeader("Content-Disposition", string.Format("attachment;filename=ExportExcel.xls"));
12 context.Response.Write(context.Request.Form["htmltable"]);
13
14 }
15
16 publicbool IsReusable {
17 get {
18 returnfalse;
19 }
20 }
21
22 }
도움이 됐으면 좋겠어요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
EasyUI Datagrid Datetime(EasyUI DataGrid 시간 포맷)
EasyUI DataGrid 시간 포맷
방법 1:
위에서 이러한 방법은 데이터grid에서 시험하였습니다.varobj=eval('('+'{Date: new'+value+'}'+').이 말은 도망갈 수 없다!
다음 방법...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
import flash.errors.*;
import flash.events.*;
import flash.external.*;
import flash.net.URLRequest;
import flash.net.URLVariables;
/**
* :IT
* :2011-09-07
* :FLex DataGird HTML Excel
*/
/* DataGird HTML */
private function convertDGToHTMLTable(dg:DataGrid):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 width="'+dg.width+'" border="1"><thead><tr width="'+dg.width+'" style="background-color:#' +Number((hcolor[0])).toString(16)+'">';
//
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].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>";
return str;
}
/* Asp。net ashx , html Excel
*/
private function loadDGInExcel(dg:DataGrid,url:String):void {
var variables:URLVariables = new URLVariables();
variables.htmltable = convertDGToHTMLTable(dg);
var u:URLRequest = new URLRequest(url);
u.data = variables;
u.method = URLRequestMethod.POST;
navigateToURL(u,"_self");
}
1 <%@ WebHandler Language="C#" Class="JinExcelExport"%>
2
3 using System;
4 using System.Web;
5
6 publicclass JinExcelExport : IHttpHandler {
7
8 publicvoid ProcessRequest (HttpContext context) {
9
10 context.Response.ContentType ="application/vnd.ms-excel";
11 context.Response.AddHeader("Content-Disposition", string.Format("attachment;filename=ExportExcel.xls"));
12 context.Response.Write(context.Request.Form["htmltable"]);
13
14 }
15
16 publicbool IsReusable {
17 get {
18 returnfalse;
19 }
20 }
21
22 }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
EasyUI Datagrid Datetime(EasyUI DataGrid 시간 포맷)EasyUI DataGrid 시간 포맷 방법 1: 위에서 이러한 방법은 데이터grid에서 시험하였습니다.varobj=eval('('+'{Date: new'+value+'}'+').이 말은 도망갈 수 없다! 다음 방법...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.