如何在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
你可以试试这样做。
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();
}