EPPlus 'System.OutOfMemoryException'

EPPlus 'System.OutOfMemoryException'

我正在尝试使用 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

我卡住了。任何帮助将不胜感激。提前致谢。

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

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

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

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

注意:我为 Syncfusion 工作。