上篇写的那个那个导出Excel的方法导出Excel的时间慢,后面想了个别的方法,导出Excel的时间很快
1 public string CreateAdvExcel(IListlt) 2 { 3 StringBuilder builder = new StringBuilder(); 4 Random rn = new Random(); 5 string name = rn.Next(9999) + ".xls"; 6 string path = Server.MapPath("\\Document\\" + name); 7 System.Reflection.PropertyInfo[] myPropertyInfo = lt.First().GetType().GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance); 8 int i = 0, j; 9 for (i = 0, j = myPropertyInfo.Length; i < j; i++)10 {11 System.Reflection.PropertyInfo pi = myPropertyInfo[i];12 string headname = pi.Name;//单元格头部13 builder.Append(headname);14 builder.Append("\t");15 }16 builder.Append("\n");17 foreach (DocAdvInfo t in lt)18 {19 if (lt == null)20 {21 continue;22 }23 for (i = 0, j = myPropertyInfo.Length; i < j; i++)24 {25 System.Reflection.PropertyInfo pi = myPropertyInfo[i];26 string str = string.Format("{0}", pi.GetValue(t, null)).Replace("\n", "");27 if (str == "")28 {29 builder.Append("\t");30 }31 else32 {33 builder.Append(str + "\t");//横向跳到另一个单元格34 }35 }36 builder.Append("\n");//换行37 }38 StreamWriter sw = new StreamWriter(path, false, System.Text.Encoding.GetEncoding("GB2312"));39 sw.Write(builder.ToString());//输出40 sw.Flush();41 sw.Close();