如何在 ASP.NET 中保存 Microsoft.Office.Interop.Excel.Workbook
Posted
技术标签:
【中文标题】如何在 ASP.NET 中保存 Microsoft.Office.Interop.Excel.Workbook【英文标题】:How to save Microsoft.Office.Interop.Excel.Workbook in ASP.NET 【发布时间】:2015-12-11 08:54:10 【问题描述】:所以问题是我有一个用代码创建的 Microsoft.Office.Interop.Excel 对象,我想保存它。但是,我希望用户能够选择保存文件的位置。
我尝试了 Response 但并没有真正成功。
PS:如果重要的话,我正在使用 ASP.NET Webforms 和 .NET 4.5。
【问题讨论】:
你能告诉我们你想要保存的代码吗?包括您的互操作对象 【参考方案1】:Microsoft.Office.Interop.Excel
的唯一选择是将 Excel 文件保存到服务器,然后将文件传输到客户端。
如果这不是您想要的,您可以使用NPOI
。您可以将其作为NuGet Package
获取。 NPOI CodePlex
与Microsoft.Office.Interop.Excel
:
string filname = @"C:\Upload\filename.xls";
workBook.SaveAs(filname)
workBook.Close();
Response.ContentType = "application/vnd.ms-excel"; //xls
// For xlsx, use: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Response.AddHeader(String.Format("content-disposition", "attachment; filename=0"), Path.GetFileName(filename));
Response.TransmitFile(filname);
Response.End();
与NPOI
:
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = (HSSFSheet)workbook.CreateSheet("SheetName");
using (MemoryStream exportData = new MemoryStream())
workbook.Write(exportData);
Response.ContentEncoding = Encoding.GetEncoding("ISO-8859-1");
Response.Charset = Encoding.GetEncoding("ISO-8859-1").EncodingName;
Response.ContentType = "application/vnd.ms-excel"; //xls
// For xlsx, use: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Response.AddHeader("content-disposition", String.Format("attachment; filename=0.xls", "yourFilename"));
Response.Clear();
Response.BinaryWrite(exportData.GetBuffer());
Response.End();
【讨论】:
以上是关于如何在 ASP.NET 中保存 Microsoft.Office.Interop.Excel.Workbook的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ASP.Net MVC4 Web API 项目中使用 Microsoft OCR 库 ( Microsoft.Windows.Ocr )?
如何使用 Microsoft 身份平台身份验证在 ASP.NET Core Web 应用程序中获取 JWT 令牌?
使用默认的 ASP.Net MVC 设置,如何使用 Microsoft 帐户登录?
如何在单个 Microsoft ASP.NET MVC Web 应用程序中同时支持个人用户帐户和工作或学校帐户?