没有足够的内存来运行excel 2013

时间:2015-02-04 10:51:26

标签: asp.net-mvc internet-explorer excel-2013 npoi

我有一个使用NPOI版本的MVC应用程序: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 Open option

然后在excel 2013中观察到此错误: Excel error 1

其次是:

Excel error 2

虽然服务器端的模板文件(SampleExcel.xlsx)已打开并与excel 2013一起保存。然后我也不知道为什么显示文件已损坏。用户机器上有足够的内存,它永远不会触及任务管理器中的峰值。 任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

我想通了,实际上问题不在于内存,而在于该特定计算机的用户权限。如果管理员尝试执行相同的上述步骤而没有访问自定义,那么他就不会遇到任何问题。

无论如何,感谢大家的时间:)