如何在asp.net 4.0, c# web应用程序中在线查看MS office文件

本文关键字:在线 应用程序 文件 office MS web asp net | 更新日期: 2023-09-27 18:07:24

目前,我正在做一个用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为word或excel文件Application/msword (Microsoft word文件)Application/x-msexcel (Microsoft excel文件),那么此代码不工作。请指导我该怎么做。我应该使用任何工具,如谷歌文档查看器或其他东西。如果只能用工具,那么请建议我一个好的工具。

Thanks in advance

如何在asp.net 4.0, c# web应用程序中在线查看MS office文件

你可以试试这样做。

Response.ContentType = application/force-download
Response.AddHeader "content-disposition","attachment; filename=filename.xls

对于excel,我看到有些人使用:Response.ContentType = "application/vnd.ms-excel",但是你的MIME对于MS Word似乎很好。

这里还有一个指向MS Office 2007+的所有MIME类型的链接

如果您正在开发可以控制浏览器使用的软件,也就是说您可以决定用户使用哪种浏览器,您可以尝试此组件http://www.ocxt.com/

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();
}