MVC NPOI 导出excel 2007 文件损坏

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");
        }

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

了解下这个 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);
        }

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

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

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