首页 新闻 会员 周边 捐助

Html页面作为一个数据库表中一个字段显示在页面中.

0
悬赏园豆:200 [待解决问题]

数据库表:Sofa.

字段: id,title,content.

通过Word文档中的内容象表中插入数据.一个Word文档为一列数据.

我现将Word文档转化成Html,存储在项目中一个文件夹中.,同时将Word文档名称为title,word文档地址为content.存储到数据表中.作为一列数据.代码如下:

 public void WordToHtml(string FileAdd, string SaveAdd)
        {
            StringBuilder sb = new StringBuilder();
            Microsoft.Office.Interop.Word.ApplicationClass appclass = new Microsoft.Office.Interop.Word.ApplicationClass();
            Type wordtype = appclass.GetType();
            Microsoft.Office.Interop.Word.Documents docs = appclass.Documents;//获取Document
            Type docstype = docs.GetType();
            // object filename = @"D:\软文-深入剖析KGC按摩椅的功能特色配图0626.doc";//Word文件的路径
            object filename = FileAdd;
            Microsoft.Office.Interop.Word.Document doc = (Microsoft.Office.Interop.Word.Document)docstype.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, docs, new object[] { filename, true, true });//打开文件
            Type doctype = doc.GetType();
            object savefilename = SaveAdd;//生成HTML的路径和名子
            // object savefilename = @"D:\gg.html";//生成HTML的路径和名子
            doctype.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, null, doc, new object[] { savefilename, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatHTML });//另存为Html格式
            wordtype.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, appclass, null);//退出
            Thread.Sleep(3000);//为了使退出完全,这里阻塞3秒
            StreamReader objreader = new StreamReader(savefilename.ToString(), System.Text.Encoding.GetEncoding("GB2312"));    //以下内容是为了在Html中加入对本身Word文件的下载                
            FileStream fs = new FileStream(savefilename.ToString().Split('.').GetValue(0).ToString() + "$.html", FileMode.Create);

            StreamWriter streamHtmlHelp = new System.IO.StreamWriter(fs, System.Text.Encoding.GetEncoding("GB2312"));
            //streamHtmlHelp.WriteLine("<a href='E:\\AA.html'>源文件下载</a><br>");
            string str = "";
            do
            {
                str = objreader.ReadLine();
               // sb.Append(str + "\n");
                sb.Replace("<Html>", "");
                sb.Replace("<body>", "");
                streamHtmlHelp.WriteLine(str);
            }
            while (str != "</html>");
            streamHtmlHelp.Close();
            objreader.Close();
            //  msg.InnerHtml = sb.ToString();

            File.Delete(savefilename.ToString());
            File.Move(savefilename.ToString().Split('.').GetValue(0).ToString() + "$.html", savefilename.ToString());

        }

 

protected void Btn_FileUpload_Click(object sender, EventArgs e)
        {
            string fileadd = FileUpload_File.PostedFile.FileName;
          
            string cont=FileUpload_File.FileName;
            string [] str=cont.Split('.');
            string filesave=str[0];
            WordToHtml(fileadd,this.MapPath("Word\\"+ filesave + ".html"));


            Model.Title = cont;
            Model.Cont = fileadd;
            Model.Date=System.DateTime.Now.ToString("yyyy-MM-dd");
            Model.Img="";
            BC.Add(Model);

        }

成功添加一条数据之后在我项目中Word文件夹中添加了2个文件.XXX.html和XXX.files.

Q1:XXX.html中图片和文字部分有重叠.

Q2:如何将Sofa表中Content字段.也就是Html文档中的内容作为一个字段显示到GridView或者DateList控件中.

Duoroc的主页 Duoroc | 初学一级 | 园豆:2
提问于:2012-09-12 19:23
< >
分享
所有回答(3)
0

放在列表中就没必要显示了吧,要看给个链接打开个新窗口看。

向往-SONG | 园豆:4853 (老鸟四级) | 2012-09-12 19:57

但是新窗口中我一样要使用母版页阿.

支持(0) 反对(0) Duoroc | 园豆:2 (初学一级) | 2012-09-12 20:02

@Duoroc: 

即使就要在列表显示,那还是得弄个页面,放在iframe里来显示。

支持(0) 反对(0) 向往-SONG | 园豆:4853 (老鸟四级) | 2012-09-12 21:42
0

在table中放一个iframe窗体,在把html塞进去

az235 | 园豆:8483 (大侠五级) | 2012-09-13 09:58
0

可以当做附件下载下来看也行。

或者 你直接保存到本地的一个文件夹下面,就跟图片是的,不存二进制流,只是村一个固定的路径

需要看的时候,用iframe直接指向路径即可。

二十三号同学 | 园豆:974 (小虾三级) | 2012-09-13 15:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册