【发布时间】:2014-12-08 14:14:16
【问题描述】:
我想将表中的所有记录写入 Excel 文件。 我的表中有大约 30000 行。
我只能将 20000 行写入 excel。在System out of memory 发生异常之后。
这是我的代码。提前致谢。
using (SqlConnection con = new SqlConnection(strconnection))
{
using (SqlCommand cmd = new SqlCommand("SELECT * FROM tbl_ReportwithoutDup"))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
using (XLWorkbook wb = new XLWorkbook())
{
wb.Worksheets.Add(dt, "Report1");
Response.Clear();
Response.Buffer = true;
Response.Charset = "";
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment;filename=Report1.xlsx");
using (MemoryStream MyMemoryStream = new MemoryStream())
{
wb.SaveAs(MyMemoryStream);
MyMemoryStream.WriteTo(Response.OutputStream);
Response.Flush();
Response.End();
}
}
}
}
}
}
【问题讨论】:
-
您在使用 Excel 互操作服务库吗?或者您使用什么库来生成 Excel 文件?
-
不要在服务器上使用互操作,看这里:stackoverflow.com/a/9569827/351383
标签: c# asp.net sql-server excel