会员
周边
众包
新闻
博问
闪存
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
TonyKent's Blog
Walk with Microsoft~
博客园
首页
新随笔
联系
订阅
管理
ASP.NET 从List导出Excel
此方法有一个弊端, 就是必须将Entity的属性对应哪个要输出的列名(例如:汉字)在调用此方法前事先对应好, 比较烦...
Code
/**/
///
<summary>
///
将一组对象导出成EXCEL
///
</summary>
///
<typeparam name="T">
要导出对象的类型
</typeparam>
///
<param name="objList">
一组对象
</param>
///
<param name="FileName">
导出后的文件名
</param>
///
<param name="columnInfo">
列名信息
</param>
public
void
ExExcel
<
T
>
(List
<
T
>
objList,
string
FileName, Dictionary
<
string
,
string
>
columnInfo)
{
if
(columnInfo.Count
==
0
)
{
return
; }
if
(objList.Count
==
0
)
{
return
; }
//
生成EXCEL的HTML
string
excelStr
=
""
;
Type myType
=
objList[
0
].GetType();
//
根据反射从传递进来的属性名信息得到要显示的属性
List
<
System.Reflection.PropertyInfo
>
myPro
=
new
List
<
System.Reflection.PropertyInfo
>
();
foreach
(
string
cName
in
columnInfo.Keys)
{
System.Reflection.PropertyInfo p
=
myType.GetProperty(cName);
if
(p
!=
null
)
{
myPro.Add(p);
excelStr
+=
columnInfo[cName]
+
"
\t
"
;
}
}
//
如果没有找到可用的属性则结束
if
(myPro.Count
==
0
)
{
return
; }
excelStr
+=
"
\n
"
;
foreach
(T obj
in
objList)
{
foreach
(System.Reflection.PropertyInfo p
in
myPro)
{
excelStr
+=
p.GetValue(obj,
null
)
+
"
\t
"
;
}
excelStr
+=
"
\n
"
;
}
//
输出EXCEL
HttpResponse rs
=
System.Web.HttpContext.Current.Response;
rs.ContentEncoding
=
System.Text.Encoding.GetEncoding(
"
GB2312
"
);
rs.AppendHeader(
"
Content-Disposition
"
,
"
attachment;filename=
"
+
FileName);
rs.ContentType
=
"
application/ms-excel
"
;
rs.Write(excelStr);
rs.End();
}
posted on
2009-05-14 12:57
TonyKent
阅读(
2107
) 评论(
1
)
编辑
收藏
举报
会员力量,点亮园子希望
刷新页面
返回顶部