要求保存为或打开以从c#下载excel表

时间:2014-08-13 06:26:50

标签: c# excel

我正在开发一个按钮来下载excel工作表中的特定报告我使用Microsoft.Office.Interop.Excel命名空间,一切正常,但我的问题是如何强制要求保存为或打开文件像任何其他文件下载?现在我的excel工作簿会自动下载到Documents,这样客户端就不会知道该文件已经下载了。任何帮助都非常感谢

2 个答案:

答案 0 :(得分:1)

这是http://weblog.west-wind.com/posts/2007/May/21/Downloading-a-File-with-a-Save-As-Dialog-in-ASPNET上可用的信息的一部分,可以帮助您解决问题:

  

如果要在链接时自动强制“另存为”对话框   通过服务器端的代码单击,您必须将文件发回   通过代码使用Response.TransmitFile(),Response.BinaryWrite()或   将其流式传输到Response.OutputStream并添加几个自定义   输出的标题。

     

执行此操作的最佳方法是使用Response.TransmitFile()   显式从ASP.NET应用程序发送文件,然后添加   内容类型和内容处置标头。请注意   最新版本的IIS中的Response.TransmitFile()只能提供文件   超出Web站点或虚拟的虚拟文件夹层次结构。对于   您必须流入的虚拟路径之外的文件   的OutputStream()。

     

假设您的文件确实存在于文件夹层次结构内部,那么就是这样的   您可以强制使用TransmitFile()发送输出的另存为对话框:

Response.ContentType = "image/jpeg";
Response.AppendHeader("Content-Disposition", "attachment; filename=SailBig.jpg");
Response.TransmitFile(Server.MapPath("~/images/sailbig.jpg"));
Response.End();
  

这将导致打开/另存为对话框弹出   SailBig.jpg的文件名作为默认文件名预设。

对文章原作者的文字的归属。

答案 1 :(得分:1)

您可以使用内容处置标题

来实现此目的

在示例中添加以下代码行

Response.AppendHeader("content-disposition","attachment; filename=" + name);

首先检查文件的扩展名并将其保存在变量" 名称"然后使用它,如上面的代码所示。