【发布时间】:2015-11-24 10:29:30
【问题描述】:
我正在使用以下代码下载excel文件:
Response.ClearContent();
Response.Buffer = true;
Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "MBQ.xls"));
Response.ContentType = "application/ms-excel";
DataTable dt = BindDatatable();
string str = string.Empty;
foreach (DataColumn dtcol in dt.Columns)
{
Response.Write(str + dtcol.ColumnName);
str = "\t";
}
Response.Write("\n");
foreach (DataRow dr in dt.Rows)
{
str = "";
for (int j = 0; j < dt.Columns.Count; j++)
{
Response.Write(str + Convert.ToString(dr[j]));
str = "\t";
}
Response.Write("\n");
}
Response.End();
在我的例子中,表有超过 80 万条记录。在下载 Excel 表之前,我正在应用更多过滤器。从具有数十万行的数据表中下载 excel 表的最佳方法是什么?
【问题讨论】:
-
输出不是有效的 Excel 文档,是吗?
-
您没有生成 Excel 电子表格。您实际上是在导出 TSV 文件。正确的 MIME 类型是
text/tab-separated-values,正确的扩展名是.tsv(尽管许多人认为.csv也适用于 TSV 文件)。 -
@PatrickHofman:是的.. 我也试过 HttpContext.Current.ApplicationInstance.CompleteRequest();
-
@Dai:如何修改上面的才能下载成功?
标签: c# asp.net excel download datatables