最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#從實(shí)體對象集合中導(dǎo)出Excel的代碼

 更新時間:2008年08月26日 08:46:04   作者:  
數(shù)據(jù)的導(dǎo)出是項(xiàng)目中經(jīng)常要實(shí)現(xiàn)的功能,就拿最常見的要導(dǎo)出成Excel來說,網(wǎng)上看來看去,都是介紹從Datatable中導(dǎo)出
或是將Datagrid或是Gridview的輸出導(dǎo)出,實(shí)現(xiàn)大體上又分為調(diào)用COM+組件或是利用Response(當(dāng)然是B/S架構(gòu)的項(xiàng)目)的輸出來做,COM+組件的方式以前在項(xiàng)目中也應(yīng)用過,但說實(shí)話感覺效果并不好,一是布署很麻煩,二是當(dāng)時記得好像WEB服務(wù)器端的有個進(jìn)程老關(guān)不掉,并且還有個問題是服務(wù)器端安裝的EXCEL版本的不同,在程序中調(diào)用的方法傳入的參數(shù)個數(shù)都不相同,真是夠郁悶的,但是好處是這種方式當(dāng)然是最靈活的。

我們還是以一個B/S架構(gòu)的項(xiàng)目應(yīng)用來說說導(dǎo)出吧,通用一點(diǎn)兒的還是從數(shù)據(jù)集往外導(dǎo)出吧,畢竟將Gridview的輸出導(dǎo)出來這種方式個人感覺適用性不高,因?yàn)榇蟛糠智闆r我們的頁面中的運(yùn)用Gridview都是要牽扯分頁的,我們還是直接來做從數(shù)據(jù)集往外導(dǎo)吧,從DataTable往外導(dǎo)網(wǎng)上很多現(xiàn)成的,但是運(yùn)用在一個嚴(yán)格分層架構(gòu)的項(xiàng)目中,還是會有些不爽的,假如我們嚴(yán)格要求我們的項(xiàng)目是標(biāo)準(zhǔn)的三層架構(gòu),我們層與層之間傳遞的是我們的實(shí)體對象,我們不傳遞DataTable這種弱類型的東東,那我們導(dǎo)出的數(shù)據(jù)源就只能是實(shí)體對象集合了,于是,我們需要寫一個以實(shí)體對象為數(shù)據(jù)源的導(dǎo)出方法,感覺還是不太完美,比如在參數(shù)中“導(dǎo)出列信息”參數(shù)的設(shè)計,感覺還有更好的方式,呵呵,以后有空再想吧!

貼出我的實(shí)現(xiàn),大家也幫忙看看!
復(fù)制代碼 代碼如下:


/// <summary>
/// 將一組對象導(dǎo)出成EXCEL
/// </summary>
/// <typeparam name="T">要導(dǎo)出對象的類型</typeparam>
/// <param name="objList">一組對象</param>
/// <param name="FileName">導(dǎo)出后的文件名</param>
/// <param name="columnInfo">列名信息</param>
public static 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();
//根據(jù)反射從傳遞進(jìn)來的屬性名信息得到要顯示的屬性
List<PropertyInfo> myPro = new List<PropertyInfo>();
foreach (string cName in columnInfo.Keys)
{
PropertyInfo p = myType.GetProperty(cName);
if (p != null)
{
myPro.Add(p);
excelStr += columnInfo[cName] + "\t";
}
}
//如果沒有找到可用的屬性則結(jié)束
if (myPro.Count == 0) { return; }
excelStr += "\n";

foreach (T obj in objList)
{
foreach (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();
}

相關(guān)文章

  • C#創(chuàng)建IIS虛擬目錄的方法

    C#創(chuàng)建IIS虛擬目錄的方法

    這篇文章主要介紹了C#創(chuàng)建IIS虛擬目錄的方法,實(shí)例分析了C#在IIS服務(wù)器上創(chuàng)建虛擬目錄的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • C#編程讀取文檔Doc、Docx及Pdf內(nèi)容的方法

    C#編程讀取文檔Doc、Docx及Pdf內(nèi)容的方法

    這篇文章主要介紹了C#編程讀取文檔Doc、Docx及Pdf內(nèi)容的方法,涉及C#操作COM組件讀取Doc、Docx及Pdf文檔的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • C#中將DataTable轉(zhuǎn)換成CSV文件的方法

    C#中將DataTable轉(zhuǎn)換成CSV文件的方法

    DataTable用于在.net項(xiàng)目中,用于緩存數(shù)據(jù),DataTable表示內(nèi)存中數(shù)據(jù)的一個表,在.net項(xiàng)目中運(yùn)用C#將DataTable轉(zhuǎn)化為CSV文件,接下來通過本文給大家提供一個通用的方法,感興趣的朋友可以參考下
    2016-10-10
  • 詳解C#中通過委托來實(shí)現(xiàn)回調(diào)函數(shù)功能的方法

    詳解C#中通過委托來實(shí)現(xiàn)回調(diào)函數(shù)功能的方法

    這篇文章主要介紹了C#中通過委托來實(shí)現(xiàn)回調(diào)函數(shù)功能的方法,文中舉了一個典型的多線程回調(diào)程序?qū)嵗?需要的朋友可以參考下
    2016-04-04
  • WPF實(shí)現(xiàn)PropertyGrid功能

    WPF實(shí)現(xiàn)PropertyGrid功能

    這篇文章主要為大家詳細(xì)介紹了在WPF中如何借助WinForm的PropertyGrid實(shí)現(xiàn)屬性列表功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2024-11-11
  • 使用Cursor進(jìn)行C#編程的詳細(xì)步驟

    使用Cursor進(jìn)行C#編程的詳細(xì)步驟

    Cursor 是一款功能強(qiáng)大的代碼編輯器,它憑借其人工智能輔助功能,為開發(fā)者帶來了諸多便利,本文將給大家介紹了用Cursor 進(jìn)行C#編程的超詳細(xì)指南,需要的朋友可以參考下
    2025-03-03
  • C#微信開發(fā)第一章

    C#微信開發(fā)第一章

    這篇文章主要為大家詳細(xì)介紹了C#微信開發(fā)第一章,很有參考價值和實(shí)用性,感興趣的小伙伴們可以參考一下
    2016-07-07
  • C#壓縮和解壓文件的兩種方法

    C#壓縮和解壓文件的兩種方法

    在C#中,我們可以使用內(nèi)置的System.IO命名空間下的幾個類來處理文件的壓縮和解壓縮,主要涉及到兩個常用的庫:System.IO.Compression和WinRAR,以下是使用這些類進(jìn)行文件壓縮和解壓縮的基本步驟,需要的朋友可以參考下
    2024-08-08
  • C#窗體傳值代碼方法

    C#窗體傳值代碼方法

    在本篇文章里小編給大家整理的是關(guān)于C#窗體傳值代碼內(nèi)容,需要的朋友們可以跟著學(xué)習(xí)參考下。
    2020-02-02
  • 淺談c#開發(fā)者應(yīng)該了解的15個特性

    淺談c#開發(fā)者應(yīng)該了解的15個特性

    本文列舉了15個值得了解的C#特性,旨在讓.NET開發(fā)人員更好的使用C#語言進(jìn)行開發(fā)工作。
    2021-05-05

最新評論

德庆县| 保山市| 灵丘县| 伊吾县| 许昌县| 丽江市| 互助| 九江市| 弥勒县| 和静县| 崇仁县| 佛山市| 雷山县| 资阳市| 延川县| 宁河县| 泰顺县| 宁陵县| 龙山县| 九寨沟县| 轮台县| 浦北县| 保山市| 项城市| 屏东县| 洛南县| 石棉县| 社旗县| 特克斯县| 宁河县| 新乡县| 修水县| 岑巩县| 元氏县| 建水县| 怀仁县| 延川县| 靖宇县| 府谷县| 喀喇| 盱眙县|