Kumud Dumbre Ответов: 1

Экспорт в excel system. outofmemoryexception


Sub ExportExcel()
        Using wb As New XLWorkbook()
            'Loop through the GridView pages.

            For i As Integer = 1 To GridView2.PageCount - 1
                Me.BindGrid()
                'Set the Current Page.
                GridView2.PageIndex = i
                'Create a DataTable with schema same as GridView columns.
                Dim dt As New DataTable("Page_" & (i + 1))
                For Each cell As TableCell In GridView2.HeaderRow.Cells
                    dt.Columns.Add(cell.Text)
                Next

                'Loop and add rows from GridView to DataTable.
                For Each row As GridViewRow In GridView2.Rows
                    dt.Rows.Add()
                    For j As Integer = 0 To row.Cells.Count - 1
                        dt.Rows(dt.Rows.Count - 1)(j) = row.Cells(j).Text
                    Next
                Next

                'Add DataTable as Worksheet.
                wb.Worksheets.Add(dt)
            Next

            'Export the Excel file.
            Response.Clear()
            Response.Buffer = True
            Response.Charset = ""
            Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
            Response.AddHeader("content-disposition", "attachment;filename=GridView.xlsx")
            Using MyMemoryStream As New MemoryStream()
                wb.SaveAs(MyMemoryStream)--// Error here-- System.OutOfMemoryException.
                MyMemoryStream.WriteTo(Response.OutputStream)
                Response.Flush()
                Response.[End]()
            End Using
        End Using
    End Sub


Что я уже пробовал:

Я попытался экспортировать 30000 записей в excel на одном листе он выдает исключение outofmemory
я попытался установить maxRequestLength= "2097151", но это не сработало
затем я попытался экспортировать в несколько листов, это сработало, но не позволило мне экспортировать более 8000 записей, если кто-нибудь знает помощь.

1 Ответов

Рейтинг:
1

manu_dhobale

Пожалуйста, поделитесь полным stacktrace.
также вы можете обратиться Экспорт очень больших данных в файл Excel[^]