北京卓正志远软件有限公司
诚信指数 0
一站通留言 客户留言 联系我们 联系我们 收藏此网站 发送消息
首页
企业介绍
资质荣誉
供应信息
商业信息
企业新闻
招聘信息
企业名片
客户留言
产品资料
search 搜索网站中其它产品:
您现在的位置:北京卓正志远软件有限公司 > 企业新闻
 
企业新闻
ASP.NET下Word文档的在线编辑、保存和全文关键字搜索
发布日期:2013-05-09

本文演示了如何在线编辑、保存word文档,并搜索含有关键字的文档。
1.项目目的
    随着技术的发展,人们的需求也随之提高。Office文件的在线处理也越来越受到人们的关注。PageOffice开发平台无疑为

Office文件的在线处理打开了方便之门。本文就是通过使用PageOffice开发平台,实现对word文档的在线处理,并搜索、显示

含有关键字的文档。
2.解决思路
    我们首先对文档进行在线编辑,并保存。保存的时候,将文档纯文本内容存入数据库,以备搜索时使用。
    要获取文档的纯文本,以往的方法都比较复杂,而且效率也不高,但是利用PageOffice的FileSaver 对象的DocumentText

属性却能轻而易举的实现。我们在保存页面获取该属性的值,然后将此值存入到数据库中,这样就实现了获取文档纯文本并将

其保存至数据库中的功能。
     然后是关键字搜索功能,我们通过数据库中存储Word文档纯文本的字段,利用sql语句将包含关键字的文档搜索出来。
    实现文档在线编辑的关键是利用PageOffice开发平台,所以我们要确保Visual Studio.NET开发环境安装了PageOffice开

发平台。

3.关键步骤 

  (1)先安装PageOffice的服务器端的安装程序,之后在项目的根目录下添加pageoffice文件夹(在www.zhuozhengsoft.com

网站的“下载中心”中可下载相应的压缩包,解压之后直接将PageOffice示例代码里的pageoffice文件夹拷贝到项目根目录下

就可以了)。
  (2)保存文档纯文本:我们在文档编辑页面Edit.aspx中从VS工具箱里拖放一个PageOfficeCtrl控件,然后调用方法

AppendToolButton(Caption, JsFunction, IconIndex)给PageOfficeCtrl控件的自定义工具栏添加一个“保存”按钮。
*****************************************************************

  后台代码如下:

      //添加自定义工具栏按钮

      PageOfficeCtrl1.AddCustomToolButton("保存", "Save()", 1);

      前台的JS函数如下:
      

      function Save() {

      document.getElementByIdx_x_x_x_x("PageOfficeCtrl1").WebSave();

      //document.getElementByIdx_x_x_x_x("PageOfficeCtrl1").CustomSaveResult获取的是保存页面的返回值

      if(document.getElementByIdx_x_x_x_x("PageOfficeCtrl1").CustomSaveResult == "ok")

      alert("保存成功");

      else     alert(document.getElementByIdx_x_x_x_x("PageOfficeCtrl1").CustomSaveResult);}

      

  *****************************************************************

 (3)获取DocumentText属性的值:在保存页面里通过FileSaver对象获取,代码如下:
*****************************************************************
  PageOffice.FileSaver fs = new PageOffice.FileSaver();

  string content = fs.DocumentText;//获取DocumentText属性的值
*****************************************************************
4.示例程序架构
  ----FileManage.aspx //显示文档列表和搜索关键字的页面
  ----FileManage.aspx.cs

  ----Edit.aspx //实现文档在线编辑的页面
  ---- Edit.aspx.cs

  ----SaveFile.aspx //保存文档的页面
  ---- SaveFile.aspx.cs
5.代码编写

   首先是FileManage.aspx,此页面主要实现搜索包含关键字的文档和显示文档列表的功能。其中关于搜索,我们可以利用

sql查询语句来实现,您可以这样写sql语句:“select * from word where Content like '%" + key + "%'”,其中“word

”是表名,“Content”是指表中存储文档纯文本的字段名“key”就是我们输入的关键字。
   接着是实现文档在线编辑功能的页面:Edit.aspx。从VS工具箱里拖放一个PageOfficeCtrl控件,具体代码如下:

    *****************************************************************

    前台Edit.aspx页面代码如下:
    

 

   

http://www.w3.org/TR/xhtml1/DTD/xhtml1-

transitional.dtd">

   http://www.w3.org/1999/xhtml">

   

   

   

   function Save() {

   document.getElementByIdx_x_x_x_x("PageOfficeCtrl1").WebSave();

   //document.getElementByIdx_x_x_x_x("PageOfficeCtrl1").CustomSaveResult获取的是保存页面的返回值

   if (document.getElementByIdx_x_x_x_x("PageOfficeCtrl1").CustomSaveResult == "ok")

   alert("保存成功");

   else           alert(document.getElementByIdx_x_x_x_x("PageOfficeCtrl1").CustomSaveResult);}

   

   

   

   

   

   

   

   

   

   

   

   然后是Edit.aspx的后台代码Edit.aspx.cs,具体实现代码如下:
   *********************************************************************

   protected void Page_Load(object sender, EventArgs e)

   {//设置服务器页面

   PageOfficeCtrl1.ServerPage = "pageoffice/server.aspx";

   if (Request.QueryString["id"] != null && Request.QueryString["id"].ToString().Trim().Length > 0)

   {string id = Request.QueryString["id"].ToString().Trim();

   string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|demo_search.mdb";

   string sql = " select * from word where id= " + id;

   OleDbConnection conn = new OleDbConnection(strConn);

   OleDbCommand cmd = new OleDbCommand(sql, conn);

   conn.Open();

   cmd.CommandType = CommandType.Text;

   OleDbDataReader Reader = cmd.ExecuteReader();

   if (Reader.Read())

   {string fileName = "";

   if (Reader["FileName"] != null && Reader["FileName"].ToString().Length > 0)

   {fileName = Reader["FileName"].ToString().Trim() + ".doc";}

   else

   {Page.RegisterClientScriptBlock("", "");

   return;}

 

   //添加自定义工具栏按钮

   PageOfficeCtrl1.AddCustomToolButton("保存", "Save()", 1);

   //设置保存页面

   PageOfficeCtrl1.SaveFilePage = "SaveFile.aspx?id=" + id;

   //打开Word文档

   PageOfficeCtrl1.WebOpen(Server.MapPath("doc/") + fileName,      PageOffice.OpenModeType.docNormalEdit, "张

佚名");}

   conn.Close();}

   else

   {Page.RegisterClientScriptBlock("", "");

   return;}

   最后就是保存文档页面SaveFile.aspx,它实现了两个功能,一、是将编辑后的文档的内容保存到数据库中,、是将编辑后

的文档保存到doc/目录下。具体实现代码如下:
   protected void Page_Load(object sender, EventArgs e)

   {//定义FileSaver对象

   PageOffice.FileSaver fs = new PageOffice.FileSaver();

   if (Request.QueryString["id"] != null && Request.QueryString["id"].ToString().Trim().Length >  0)

    {string id = Request.QueryString["id"].ToString().Trim();

    string content = fs.DocumentText;

    string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data       Source=|DataDirectory|demo_search.mdb";

    string sql = " update word set Content = '" + content + "' where id= " + id;

    OleDbConnection conn = new OleDbConnection(strConn);

    OleDbCommand cmd = new OleDbCommand(sql, conn);

    conn.Open();

    cmd.CommandType = CommandType.Text;

    cmd.ExecuteNonQuery();

    //将文档内容保存到本地磁盘的Word文档中,fs.FileName指代Edit.aspx.cs页面中打开的Word文件名

    fs.SaveToFile(Server.MapPath("doc/") + fs.FileName);

    //设置保存返回值

    fs.CustomSaveResult = "ok";}

    else

    {//设置保存返回值

    fs.CustomSaveResult = "未获得文档编号ID";}

 

    //关闭FileSaver对象

    fs.Close();}

    通过这几个页面就可以轻松实现word文档的在线编辑、保存,以及搜索包含关键字的文档了。

本示例代码在VS2008下编译通过。本文完整的示例代码可在(#)网站中下载。

 

 

免责声明:本商铺所展示的信息由企业自行提供,内容的真实性、准确性和合法性由发布企业负责,一比多公司对此不承担任何保证责任。

友情提醒:为保障您的利益,降低您的风险,建议优先选择商机宝付费会员的产品和服务。


北京卓正志远软件有限公司   地址:北京市朝阳区望京   邮政编码:100102
联系人:田小姐   电话:15810217283   手机:15810217283   
技术支持:一比多  |  免责声明 | 隐私声明
增值电信业务经营许可证:沪B2-20070060     网站Icp备案号:沪ICP备05000175号
<%---站点编号 ----%> <%---页面编号 ----%> <%---页面参数1 ----%> <%---页面参数2----%> <%---页面参数3 ----%>