Velmi dobře, používám tento generický /// <summary> Exportovat sadu objektů do EXCELu /// </summary> <typeparam jméno="T"> typ objektu, který chcete exportovat</typeparam> <param name="objList" > množina objektů</param> <název parametru="FileName"> exportované jméno souboru</param> <název parametru="columnInfo"> informace o názvu sloupců</param> public void ListToExcel<T>(List<T> objList, string FileName, Dictionary<string, string>columnInfo) { if (columnInfo.Count == 0) { return; } if (objList.Count == 0) { return; } Generování EXCEL HTML string excelStr = ""; Zadejte myType = objList[0]. GetType(); Na základě odrazu je atribut, který má být zobrazen, získán z informací o názvu atributu zadaném v List<System.Reflection.PropertyInfo> myPro = nový List<System.Reflection.PropertyInfo>(); foreach (řetězec cName v columnInfo.Keys) { System.Reflection.PropertyInfo p = myType.GetProperty(cName); pokud (p != null) { myPro.Add(p); excelStr += columnInfo[cName] + "\t"; } } Pokud nejsou nalezeny žádné dostupné atributy, končí if (myPro.Count == 0) { return; } excelStr += "\n"; foreach (T obj v objList) { foreach (System.Reflection.PropertyInfo p v myPro) { excelStr += p.GetValue(obj, null) + "\t"; } excelStr += "\n"; } Výstup EXCEL HttpResponse rs = System.Web.HttpContext.Current.Response; rs. ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); rs. AppendHeader("Content-Disposition", "attachment; název souboru=" + název souboru); rs. ContentType = "aplikace/ms-excel"; rs. Write(excelStr); rs. end(); } |