【问题标题】:Exception of type 'System.OutOfMemoryException' was thrown when writing data to excel将数据写入 Excel 时引发“System.OutOfMemoryException”类型的异常
【发布时间】:2018-01-23 19:04:46
【问题描述】:

我正在尝试将大约 200000 行写入 Excel 并收到错误

抛出了“System.OutOfMemoryException”类型的异常

我的代码如下:

DataTable dtS = new DataTable();

dtS = myFucntion();

FileStream fs = new FileStream(Server.MapPath(@"~/Images/Tss_rpt.xlsx"),
                               FileMode.Open, FileAccess.Read);

NPOI.XSSF.UserModel.XSSFWorkbook PBLXSSFWorkbook2 = 
    new NPOI.XSSF.UserModel.XSSFWorkbook(fs);

XSSFSheet PBLsheet2 = (XSSFSheet)PBLXSSFWorkbook2.GetSheet("TssAML");

if (dtS.Rows.Count > 0)
{
    XSSFRow PBLrows;

    for (int i = 0; i < dtS.Rows.Count; i++)
    {
        PBLrows = (XSSFRow)PBLsheet2.CreateRow(i);

        for (int j = 0; j < dtS.Columns.Count; j++)
        {
            PBLrows.CreateCell(j).SetCellValue(dtS.Rows[i][j].ToString());
        }
    }

    PBLrows = null;

    MemoryStream ms = new MemoryStream();

    PBLXSSFWorkbook2.Write(ms);
    ExportDataTableToExcel(ms, "Txn_Aml_rpt.xlsx");
}
else 
{ 
    clsMessageBox.Show("No Record(s) Found !!"); return; 
}

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    添加

    Response.Buffer = true;
    Response.Clear();
    

    在写入数据之前。

    【讨论】:

    • 他为什么要这么做?
    • 请在您的答案中添加一些细节。
    猜你喜欢
    • 1970-01-01
    • 2013-01-14
    • 2013-08-28
    • 2015-07-18
    • 2011-02-14
    相关资源
    最近更新 更多