У меня есть приложение 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 (файл предварительного просмотра):
Затем в excel 2013 наблюдается эта ошибка:
С последующим:
Хотя файл шаблона (SampleExcel.xlsx), который находится на стороне сервера, открыт и сохранен с помощью Excel 2013. Тогда я также не знаю, почему он показывает, что файл поврежден. И на машине пользователя достаточно памяти, она никогда не достигает своего пикового значения в диспетчере задач. Любая помощь будет высоко ценится.