aa2012123456
小颜学开发
采纳率100%
2019-04-08 16:42 浏览 1.2k

MVC NPOI 导出excel 2007 文件损坏

20

MVC下用NPOI导出excel2007,无法打开文件,提示文件已经损坏。导出2003就没有问题。

        public FileResult Export_()
        {
            XSSFWorkbook workbook = new XSSFWorkbook();
            //创建一个Excel的Sheet
            ISheet sheet = workbook.CreateSheet();
            for (int i = 0; i <= 15; i++)
            {
                IRow row = sheet.CreateRow(i);
                for (int j = 0; j < 15; j++)
                {
                    row.CreateCell(j).SetCellValue(i + "行" + j + "列");
                }
            }

            NpoiMemoryStream ms = new NpoiMemoryStream();
            ms.AllowClose = false;
            workbook.Write(ms);
            ms.Flush();
            ms.Seek(0, SeekOrigin.Begin);

            //var memoryStream = Session["table"] as NpoiMemoryStream;

            workbook.Write(ms);
            ms.Close();

            return File(ms, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "ActualThroughPut.xlsx");
        }

这个怎么解决啊,急急急!!!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答 默认 最新

  • 已采纳
    ch598303706 ch598303706 2019-04-08 17:42

    了解下这个 Aspose.Cells 插件 ,简直不能太好用

       Workbook workbook = new Workbook();
            Worksheet sheet = (Worksheet)workbook.Worksheets[0];
    
                //写值 表头
                Cells ucells = sheet.Cells;
                ucells[0, 0].PutValue("测试");
    
    
    
                        ucells[1, 0].PutValue("测试");
    
    
    
            using (MemoryStream ms = new MemoryStream())
            {
                workbook.Save(ms, new OoxmlSaveOptions(SaveFormat.Xlsx));//默认支持xls版,需要修改指定版本 
                string filename = string.Format("{0}.xlsx", "测试");
                return File(ms.ToArray(), "application/ms-excel", filename);
            }
    
    点赞 1 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2019-04-08 16:48

    调试下
    File.WriteAllBytes("text.xlsx", ms.ToArray());
    写在服务器上,看这个文件能不能打开

    最后的
    workbook.Write(ms);
    ms.Close();
    这两行去掉

    点赞 评论 复制链接分享
  • interesting_star interesting_star 2019-04-08 16:49

    XSSFWorkbook 与HSSFWorkbook 导出的类型有区别吧 HSSFWorkbook(xls)XSSFWorkbook (xlsx)

    点赞 评论 复制链接分享

相关推荐