2016-01-13 2 views
0

Я пытаюсь открыть файл Excel с помощью 38MB EPPlus v4.0, я могу передать его переменная ExcelPackage, но когда я пытаюсь получить книгу от этого переменная, она вызывает у меня System.OutOfMemoryException '.EPPlus «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 

я застрял. Любая помощь будет действительно оценена. Заранее спасибо.

ответ

3

Возможно, вы попадаете в пределы ПМ, так как это большой файл. Если у вас есть возможность компилировать до 64 бит, вы можете быть в состоянии решить эту проблему:

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

Но если вы можете только компилировать x86 там не много вы можете сделать с epplus. Вам придется либо использовать другую библиотеку или строить XML-файлы для Excel самостоятельно:

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

+0

К сожалению, я могу только скомпилировать x86 ... Хорошо, что я уже начал с обходного пути. Спасибо, в любом случае! –

+0

Для будущего использования вы можете предложить любые библиотеки, которые я могу использовать для больших файлов? Пробовал ClosedXML, до сих пор не повезло. Я использовал EPPlus, потому что он рекомендован многими и удобен для пользователя, но большая часть моей работы связана с управлением большими файлами Excel. Еще раз спасибо! –

+0

@Aethlen У всех бесплатно есть свои проблемы (даже платные тоже). Посмотрите, помогает ли это (я не могу рекомендовать что-либо конкретное для вашей ситуации, я боюсь): http://stackoverflow.com/questions/444522/import-and-export-excel-what-is-the-best-library?rq= 1 – Ernie

0

Essential XlsIO вариант для загрузки больших файлов Excel с использованием .NET.

Весь комплект элементов управления доступен бесплатно (коммерческие приложения) через программу community license, если вы имеете право на получение дохода (менее 1 миллиона долларов США). Лицензия сообщества - это полный продукт без ограничений или водяных знаков.

Примечание: Я работаю для синхронизации.

 Смежные вопросы

  • Нет связанных вопросов^_^