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

C#從實體對象集合中導出Excel的代碼

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

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

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


/// <summary>
/// 將一組對象導出成EXCEL
/// </summary>
/// <typeparam name="T">要導出對象的類型</typeparam>
/// <param name="objList">一組對象</param>
/// <param name="FileName">導出后的文件名</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ù)反射從傳遞進來的屬性名信息得到要顯示的屬性
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";
}
}
//如果沒有找到可用的屬性則結束
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();
}

相關文章

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

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

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

    C#編程讀取文檔Doc、Docx及Pdf內容的方法

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

    C#中將DataTable轉換成CSV文件的方法

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

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

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

    WPF實現(xiàn)PropertyGrid功能

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

    使用Cursor進行C#編程的詳細步驟

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

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

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

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

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

    C#窗體傳值代碼方法

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

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

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

最新評論

阳西县| 尼玛县| 静宁县| 宣汉县| 教育| 长子县| 永春县| 丰县| 方正县| 封丘县| 邵武市| 朔州市| 会宁县| 油尖旺区| 镶黄旗| 永平县| 通江县| 永定县| 柏乡县| 营山县| 滨州市| 偏关县| 三原县| 新野县| 体育| 德阳市| 丰镇市| 商南县| 永兴县| 永清县| 海原县| 敦化市| 梅州市| 宝坻区| 陆川县| 长兴县| 汾西县| 如皋市| 鄱阳县| 长宁县| 千阳县|