FLEX에서 DataGrid Excel 내보내기
12393 단어 datagrid
이렇게 하면 프로그래밍 실현이 비교적 번거로울 뿐만 아니라 속도도 느리다. 지금은 Flex를 통해 Html 형식의 문자열을 직접 생성한 다음에 서비스 측의 asxh 파일에 전송하여 클라이언트 브라우저로 출력할 수 있다. 다음은 코드
view source
?
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
var
iables:URLVariables =
new
URLVariables();
var
iables.htmltable = convertDGToHTMLTable(dg);
var
u:URLRequest =
new
URLRequest(url);
u.data =
var
iables;
u.method = URLRequestMethod.POST;
navigateToURL(u,
"_self"
);
}
다음은net에서 만든 일반 처리 프로그램, 코드는 다음과 같습니다. 1 <%@ WebHandler Language="C#" Class="JinExcelExport" %>
2
3 using System;
4 using System.Web;
5
6 public class JinExcelExport : IHttpHandler {
7
8 public void 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 public bool IsReusable {
17 get {
18 return false;
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에 따라 라이센스가 부여됩니다.