我们使用的是不同的框架,而且我无法使用.NET GridView。我们有不同的集合类型和专门的网格(不从.NET控件继承)我需要将数据从网络导出到MS-Excel。这是代码。将数据从Web导出到Excel以提高性能
Me.Response.Clear()
Me.Response.ContentEncoding = System.Text.Encoding.GetEncoding(1254)
Me.Response.AddHeader("Content-Disposition", "Attachment;filename=Calls.xls")
Me.Response.AddHeader("Content-type", "application/ms-excel")
For n As Integer = 0 To Calls.Count - 1
Me.Response.Write(Calls(n).ID & Chr(9))
Me.Response.Write(Calls(n).ID & Chr(9))
Me.Response.Write(Calls(n).DateCreated & Chr(9))
Me.Response.Write(Calls(n).Employee.Name & Chr(9))
Me.Response.Write(Calls(n).NetDurationInText & Chr(9))
Me.Response.Write(Calls(n).Result.Name & Chr(9))
Me.Response.Write(vbCrLf)
If n Mod 50 = 0 Then
Me.Response.Flush()
End If
Next
Me.Response.End()
但是行数超过2000-3000之后,网站响应速度很慢。尽管每隔50行刷新一次,但2k-3k行大约需要5分钟。 我试图刷新每100-200行,也试图直接写入字符串响应(我的意思是Response.Write(“”))当我调试时,它循环,所有的时间通过“for循环”。
有没有比这种方式更快地导出数据的更好的主意?
注:“呼叫”是从System.Collections.CollectionBase
继承
什么是呼叫? – 2012-08-17 12:51:29
它是从System.Collections.CollectionBase继承的集合 – ahmet 2012-08-17 12:54:47
您是否在编写之前构建整个strBl?所有你正在刷新的是Me.Response.Write(Calls(n).ID&Chr(9))。 – Paparazzi 2012-08-17 13:17:55