从asp.net c#中的数据库显示网页中的Word和excel文件

问题描述 投票:0回答:1

我有一个数据库,我在其中保存了pdf,word(docx)和excel等文档。我想在查看按钮单击时将它们显示在网页上。我可以使用以下方法显示pdf文件。

  string embed = "<object data=\"{0}{1}\" type=\"application/pdf\" width=\"500px\" 
  height=\"600px\">";
  ltEmbed.Text = string.Format(embed, ResolveUrl("~/Handler1.ashx? 
id="+id+"&Name="+Name+""), temp);// literal control

在Handler1.ashx中,我具有以下内容

 string constr = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
            using (SqlConnection con = new SqlConnection(constr))
            {

                using (SqlCommand cmd = new SqlCommand())
                {
                    cmd.CommandText = "select pdfdoc from repository;
                    cmd.Connection = con;
                    con.Open();

                    using (SqlDataReader sdr = cmd.ExecuteReader())
                    {      
                            sdr.Read();
                            bytes = (byte[])sdr["BPM_Doc"];
                    }     
                }
                    con.Close();
            }

            context.Response.Buffer = true;
            context.Response.Charset = "";
            context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
            context.Response.ContentType = "application/pdf";
            context.Response.BinaryWrite(bytes);
            context.Response.End();

我如何使用相同的方法来显示单词和excel。我的Word文档也有图像。

asp.net excel sql-server-2008 ms-word literals
1个回答
0
投票

简短的答案是您不能-至少不是您的处理方式,即使您在自己的计算机上安装了Office套件。

PDF文档由大多数浏览器使用自己的Adobe PDF阅读器实现来处理-我怀疑您的浏览器正在做什么,但是Microsoft Office文档使用多种模仿类型,从较旧的Word文件的application/ms-word到[C0 ]用于新一代Office,因此内置的浏览器支持甚至显示它们在技术上将不可行,或者受许可证限制。

检出此文档查看器以将阅读器/查看器直接构建到您的项目中:

[application/vnd.openxmlformats-officedocument.wordprocessingml.document from ASP.NET Document Viewer]

注意:无论如何这都是非免费,它实际上是相当昂贵的,我希望有人能找到一个便宜的运气。

[此外,不要满足于仅向用户提供文件本身,除非您很高兴他们应该有打开文件的方法。在我的工作中,与我们打交道的最终用户没有按计划在计算机上安装Microsoft Office(实际上是通过许可),因此,通过PDF文档提供信息是唯一的方法。

© www.soinside.com 2019 - 2024. All rights reserved.