在服务器端读取和保存excel文件时出错
本文关键字:文件 出错 excel 保存 服务器端 读取 | 更新日期: 2023-09-27 18:18:52
我尝试了下面的代码在服务器端生成excel文件。
c#代码:public void ReadandOpenExcel(DirectoryInfo outputDir)
{
//FileInfo newFile = new FileInfo(outputDir.FullName + @"'New Microsoft Excel Worksheet.xlsx");
var ExistFile = Server.MapPath("~/excelsample.xlsx");
var File = new FileInfo(ExistFile);
using (ExcelPackage package = new ExcelPackage(File))
{
package.Load(new FileStream(ExistFile, FileMode.Open));
ExcelWorksheet workSheet = package.Workbook.Worksheets["Sheet1"];
workSheet.Cells["A8"].Value = "kevin";
package.Save();
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("Content-Disposition", "attachment; filename=ProposalRequest.xslx");
**Response.BinaryWrite(package.GetAsByteArray());**
// myMemoryStream.WriteTo(Response.OutputStream); //works too
Response.Flush();
Response.Close();
}
}
在运行上面的代码时,我得到了一个错误:" 包对象被关闭和处置,所以不能对这个对象或在这个包的一部分上打开的任何流执行操作。 "
ERROR On This Line:
Response.BinaryWrite (package.GetAsByteArray ());
让代码继续运行。
如果您在保存之前获得字节,它会工作吗?
Byte[] bin = package.GetAsByteArray();
package.Save();
然后在Binarywrite;
中使用该值Response.BinaryWrite(bin);
可能是.Save()
呼叫结束了?