我用这段代码写了一个激动人心的excel文件。写入文件后,当我手动打开该文件时,它已损坏。我使用的是NPOI二进制2.3.0.0,请告诉我如何避免excel被破坏。
[Authorize]
public void ExportUsers()
{
var path = Server.MapPath(@"~\Content\ExportTemplates\") + "sample.xlsx";
FileStream sw = new FileStream(path, FileMode.Open, FileAccess.Read);
IWorkbook workbook = WorkbookFactory.Create(sw);
ISheet sheet = workbook.GetSheetAt(0);
IRow row = sheet.GetRow(12);
ICell cell = row.CreateCell(row.LastCellNum);
cell.SetCellValue("test");
workbook.CreateSheet("Ripon");
sw.Close();
using (var exportData = new MemoryStream())
{
workbook.Write(exportData);
string saveAsFileName = string.Format("Export-{0:d}.xls", DateTime.Now).Replace("/", "-");
System.Web.HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}", saveAsFileName));
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.BinaryWrite(exportData.GetBuffer());
System.Web.HttpContext.Current.Response.End();
}
}
新文件已创建,但已损坏。我见过有人说这个问题已经在2.0.6版本中修复了,但对我来说仍然不起作用
https://stackoverflow.com/questions/44695769
复制相似问题