C# 如何在asp.net 4.0、C web应用程序中联机查看MS office文件

C# 如何在asp.net 4.0、C web应用程序中联机查看MS office文件,c#,asp.net,C#,Asp.net,目前,我正在开发一个文件管理系统,该系统是在C&ASP.NET中开发的,用户可以在其中存储批量文件。现在我想查看在浏览器中打开的所有可查看的文件格式,即图像、ms office、pdf等,而无需在客户端本地计算机上下载。我已经完成了一半的工作,即我的应用程序可以很好地处理所有图像文件和pdf文件。但我面临着ms office文件的问题,即.xls、.xlsx、.doc、.docx、.ppt等格式。我试过一些代码 protected void Page_Load(object sender

目前,我正在开发一个文件管理系统,该系统是在C&ASP.NET中开发的,用户可以在其中存储批量文件。现在我想查看在浏览器中打开的所有可查看的文件格式,即图像、ms office、pdf等,而无需在客户端本地计算机上下载。我已经完成了一半的工作,即我的应用程序可以很好地处理所有图像文件和pdf文件。但我面临着ms office文件的问题,即.xls、.xlsx、.doc、.docx、.ppt等格式。我试过一些代码

    protected void Page_Load(object sender, EventArgs e)
    {
        //Set the appropriate ContentType.
        string FilePath = MapPath("Test/xyz.pdf");
        Response.Buffer = true;
        Response.Clear();
        Response.ClearContent();
        Response.ClearHeaders();
        Response.ContentType = "Application/pdf";
        Response.AddHeader("content-disposition", "inline; filename=\"" + "xyz.pdf" + "\"");
        Response.Write(FilePath);
        Response.End();
    }
此代码仅适用于.pdf文件,但当我更改内容类型Response.ContentType for word或excel文件应用程序/msword for Microsoft word文件应用程序/x-msexcel for Microsoft excel文件时,此代码不起作用。 请告诉我我能做什么。我应该使用谷歌文档查看器之类的工具吗?如果只能使用这个工具,请推荐一个好的工具


提前谢谢

你可以试试这样的东西

Response.ContentType = application/force-download
Response.AddHeader "content-disposition","attachment; filename=filename.xls
同样对于excel,我看到一些人使用:Response.ContentType=application/vnd.ms-excel,但是您的ms Word MIME似乎很好


同样适用于MS Office 2007+的所有MIME类型

如果您正在开发此软件,可以控制浏览器的使用,也就是说,您可以指定用户使用的浏览器,您可以尝试此组件

谢谢Andry纠正我的错误。您找到答案了吗?请接受一个解决方案,或者自己提供一个解决方案。我也有同样的问题,也许其他人也有。
protected void downloadButton_Click(object sender, EventArgs e)
{
    string fileName = "test.xls";
    string filePath = Server.MapPath("~/test.xls");
    Response.Clear();

    Response.AppendHeader("content-disposition", "attachment; filename=" + fileName);
    Response.ContentType = "application/force-download";
    Response.WriteFile(filePath);
    Response.Flush();
    Response.End();
}