недостаточно памяти для запуска excel 2013

У меня есть приложение MVC, которое использует версию NPOI: 2.1.3.0 для чтения и записи в файле excel, и пользователь может загрузить этот файл excel на свой локальный компьютер. Формат файла: xlsx.

public ActionResult NPOI()
    {
        FileStream fs = new FileStream(Server.MapPath(@"\Content\SampleExcel.xlsx"), FileMode.Open, FileAccess.Read);
        XSSFWorkbook templateWorkbook = new XSSFWorkbook(fs);
        ISheet sheet = (ISheet)templateWorkbook.GetSheet("Sheet1");
        IRow dataRow = (IRow)sheet.GetRow(1);
        dataRow.GetCell(0).SetCellValue(77);
        sheet.ForceFormulaRecalculation = true;
        MemoryStream ms = new MemoryStream();
        templateWorkbook.Write(ms);
        return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "SampleExcel.xlsx");
    }

Запись в файл excel работает нормально. Но когда браузер IE и excel 2013 на пользовательской машине.

Если после завершения загрузки пользователь использует параметр открытия IE (файл предварительного просмотра): Параметры открытия IE

Затем в excel 2013 наблюдается эта ошибка: Excel error 1

С последующим:

Ошибка Excel 2

Хотя файл шаблона (SampleExcel.xlsx), который находится на стороне сервера, открыт и сохранен с помощью Excel 2013. Тогда я также не знаю, почему он показывает, что файл поврежден. И на машине пользователя достаточно памяти, она никогда не достигает своего пикового значения в диспетчере задач. Любая помощь будет высоко ценится.


person Prateek    schedule 04.02.2015    source источник
comment
Какая версия Windows/IE используется? Он работает с ограниченными привилегиями? А что, если вы сохраните файл excel, созданный в excel, на сервер и откроете его с помощью машины. Это работает? По сути, проблема либо в способе создания/обслуживания файла, либо в том, что машина загружает/открывает его. Нам нужно уточнить, что это такое. О, и проверьте журнал событий (Система/Приложение) на машине после того, как она не загрузится. Посмотрите, есть ли похожие записи   -  person Basic    schedule 04.02.2015
comment
Windows: Windows 7 Корпоративная с пакетом обновления 1 (64-разрядная версия); IE: 11. Права администратора. Если я сохраню файл Excel и открою его в Excel 2013, тогда он будет работать нормально. И в средстве просмотра событий: не удается найти описание события с идентификатором 0 из исходного файла MSOYDSVC.EXE. Либо компонент, вызывающий это событие, не установлен на вашем локальном компьютере, либо установка повреждена. Вы можете установить или восстановить компонент на локальном компьютере. Если событие возникло на другом компьютере, отображаемая информация должна была быть сохранена вместе с событием.   -  person Prateek    schedule 04.02.2015
comment
Вы можете изучить этот метод для создания листа Excel с помощью кода без использования каких-либо компонентов — mvark.blogspot.in/2010/04/export-to-excel-without-using.html   -  person mvark    schedule 04.02.2015
comment
Спасибо. Просто чтобы уточнить, вместо того, чтобы загружать и открывать за пределами IE, вы можете попробовать открыть файл Excel внутри IE, который не исходит от вашего генератора? Например, ссылка на один, созданный Excel/подобный. Я пытаюсь сузить круг вопросов, если IE не может открыть какие-либо файлы Excel или файл, который вы создаете, работает нормально, за исключением IE.   -  person Basic    schedule 04.02.2015
comment
Благодаря Basic, если я открою файл Excel с помощью IE, он отлично работает. И согласно журналу событий системы/приложения, я только что восстановил Excel 2013, проблема все еще сохраняется.   -  person Prateek    schedule 04.02.2015
comment
Привет, Мварк, мне нужно перенести старый проект, использующий NPOI dll, на новый. Я думаю, что если я изменю архитектуру, не используя это, это потребует больших усилий для меня, как если бы сейчас, из-за нехватки времени.   -  person Prateek    schedule 04.02.2015
comment
Привет, я сузил проблему, кажется, что временные интернет-папки IE 11 имеют некоторые проблемы с правами или размером папки. позвольте мне посмотреть более внимательно. однако, если кто-то столкнулся с этой проблемой, дайте мне знать.   -  person Prateek    schedule 10.02.2015


Ответы (1)


Я разобрался, на самом деле проблема не в памяти, а в правах пользователя на этой конкретной машине. Если администраторы попытаются выполнить те же вышеупомянутые шаги без настройки доступа, то он не столкнется с проблемой.

В любом случае спасибо всем за уделенное время :)

person Prateek    schedule 18.02.2015