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)