EPPlus'System.OutOfMemoryException'

时间:2016-01-13 06:04:50

标签: asp.net excel epplus

我正在尝试使用 EPPlus v4.0 打开一个38MB的Excel文件,我可以将它传递给 ExcelPackage 变量但是当我想要获取时该变量的工作簿,它会导致' System.OutOfMemoryException '。

这是我的代码:

    Dim temppath = Path.GetTempPath()
    Dim filenamestr As String = Path.GetFileNameWithoutExtension(Path.GetRandomFileName())

    Dim tempfilename As String = Path.Combine(temppath, filenamestr + ".xlsx")

    fileUploadExcel.SaveAs(tempfilename) 

    Dim XLPack = New ExcelPackage(File.OpenRead(tempfilename))
    GC.Collect()
    If File.Exists(tempfilename) Then
        File.Delete(tempfilename)
    End If

    Dim xlWorkbook As ExcelWorkbook = XLPack.Workbook 'the error shows here

我被困住了。真的很感激任何帮助。提前谢谢。

2 个答案:

答案 0 :(得分:3)

你可能正在达到ram限制,因为这是一个大文件。如果您可以选择编译为64位,则可以解决问题:

https://stackoverflow.com/a/29912563/1324284

但是如果你只能编译到x86,那么你可以用epplus做很多事情。您必须自己使用不同的库或为excel构建XML文件:

https://stackoverflow.com/a/26802061/1324284

答案 1 :(得分:0)

Essential XlsIO是使用.NET加载大型Excel文件的选项。

如果符合条件(收入少于100万美元),可通过community license计划免费提供整套控件(商业应用程序)。社区许可是完整的产品,没有任何限制或水印。

注意:我为Syncfusion工作。