我想将表格中的所有记录写入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();
}
}
}
}
}
}
答案 0 :(得分:0)
所以,不是一个完美的解决方案,但是由于您使用的是Web框架(asp.net),您可以随时将其全部写入HTML表格,然后将响应的内容类型设置为{ {1}}。结果是浏览器将下载默认情况下客户端在Excel中打开的CSV文件。