とても良いです。私はこのジェネリックを使っています /// <summary> オブジェクトのセットをEXCELにエクスポートします /// </summary> <typeparam name="T">エクスポートしたいオブジェクトの種類</typeparam> <param name="objList" >オブジェクトの集合</param> <param name="FileName">エクスポートされたファイル名</param> <param name="columnInfo"> 列名情報</param> public void ListToExcel<T>(List<T> objList, string FileName, Dictionary<string, string> columnInfo) { if(columnInfo.Count == 0) { return; } if (objList.Count == 0) { return; } EXCEL HTMLを生成する 文字列 excelStr = ""; Type myType = objList[0]。 GetType(); 反射に基づいて、表示される属性は入力された属性名情報から得られます List<System.Reflection.PropertyInfo> myPro = new List<System.Reflection.PropertyInfo>(); foreach (columnInfo.Keys の文字列 cName) { System.Reflection.PropertyInfo p = myType.GetProperty(cName); もし (p != null) { myPro.Add(p); excelStr += columnInfo[cName] + "\t"; } } 利用可能な属性が見つからなければ終了します if(myPro.Count == 0) { return; } excelStr += "\n"; foreach (objList の T obj) { foreach (System.Reflection.PropertyInfo p in myPro) { excelStr += p.GetValue(obj, null) + "\t"; } excelStr += "\n"; } 出力 EXCEL HttpResponse rs = System.Web.HttpContext.Current.Response; ルピー。 ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); ルピー。 AppendHeader("Content-Disposition", "attachment; filename=" + FileName); ルピー。 ContentType = "application/ms-excel"; ルピー。 ExcelStrの書き方; ルピー。 終わり(); } |