Meget godt, jeg bruger denne generiske /// <summary> Eksporter et sæt objekter til EXCEL /// </summary> <typeparam name="T"> typen af objekt, du vil eksportere</typeparam> <param name="objList" > et sæt objekter</param> <param name="FileName"> det eksporterede filnavn</param> <param name="columnInfo"> spaltenavnsinformation</param> public void ListToExcel<T>(Liste<T> objList, streng Filnavn, Ordbog<streng, streng> kolonneInfo) { hvis (columnInfo.Count == 0) { return; } hvis (objList.Count == 0) { return; } Generer EXCEL HTML streng excelStr = ""; Type myType = objList[0]. GetType(); Baseret på refleksionen opnås den attribut, der skal vises, fra attributnavnet, der sendes ind List<System.Reflection.PropertyInfo> myPro = ny List<System.Reflection.PropertyInfo>(); foreach (streng cName i columnInfo.Keys) { System.Reflection.PropertyInfo p = myType.GetProperty(cName); hvis (p != null) { myPro.Add(p); excelStr += columnInfo[cName] + "\t"; } } Hvis der ikke findes nogen tilgængelige attributter, ophører den hvis (myPro.Count == 0) { return; } excelStr += "\n"; foreach (T obj i objList) { for for (System.Reflection.PropertyInfo p i myPro) { excelStr += p.GetValue(obj, null) + "\t"; } excelStr += "\n"; } Output EXCEL HttpResponse rs = System.Web.HttpContext.Current.Response; Rs. ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); Rs. AppendHeader("Indhold-Disposition", "vedhæftning; filnavn=" + Filnavn); Rs. ContentType = "application/ms-excel"; Rs. Write(excelStr); Rs. End(); } |