如何加速.NET DataGrid到Excel的导出?
我正在使用以下函数将信息从我的DataGrid导出到Excel。但当它问我是想保存还是导出时,它花费的时间太长了。有人知道为什么有类似的经历吗如何加速.NET DataGrid到Excel的导出?,.net,excel,datagrid,export,.net,Excel,Datagrid,Export,我正在使用以下函数将信息从我的DataGrid导出到Excel。但当它问我是想保存还是导出时,它花费的时间太长了。有人知道为什么有类似的经历吗 void ExportToExcel3() { Response.Clear(); Response.AddHeader("content-disposition", "attachment;filename=FileName.xls"); Response.Charset = ""; Response.ContentT
void ExportToExcel3()
{
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=FileName.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.xls";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
GridView2.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();
}
在查看解决方案的性能时,重要的是要认识到,您实际上并没有将DataGrid导出到Excel:您实际上是将其内容编写为HTML,然后“诱骗”Windows使用Excel打开该HTML。Excel将尽可能地将HTML表转换为工作表 这里的瓶颈很可能是Excel的转换过程:特别是在大型表上,解析HTML需要大量工作,涉及大量关于数据类型和转换的缓慢猜测。HTML甚至可能非常笨拙,从服务器下载到客户端也会带来明显的延迟 由于您无法控制这两个瓶颈所涉及的代码,因此除了通过切换到更高效的格式(即本机Excel而不是HTML)来完全避免这些瓶颈之外,您无法做很多事情来消除它们 有几个.NET库可以帮助您实现这一点,包括。谷歌搜索很可能还会找到很多其他的选择。请注意,您的服务器端代码将变得更加复杂:您必须设置电子表格的结构/格式,并在DataGrid中循环以导出每一行。但最终的结果,XLS文件,将更加紧凑和高效,也将更有用(即编辑)为您的用户比您当前的HTML导出