ASP.NET下Word文档的在线编辑、保存和全文关键字搜索的完整示例

本文演示了如何在线编辑、保存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页面代码如下:
   
 
  
Namespace="PageOffice" TagPrefix="po" %>
nbsp;  Transitional//EN" " 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下编译通过。本文完整的示例代码可在( http://www.zhuozhengsoft.com)网站中下载。
卓正软件的田女士为您提供--15810217283 QQ:947813015

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28798262/viewspace-758282/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28798262/viewspace-758282/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作为ASP.NET项目的开发者,在应对用户的Word、Excel文档时,您是否迫切希望Visual Studio工具箱里能有现成的Word、Excel标准ASP.NET控件可用就太好了?现在梦想已经成真,想在网页上显示编辑Word、Excel文档并且调用微软Office的强大功能,就直接从工具箱拖动一个PageOffice控件到Web页面上就可以了,就和使用常用的TextBox控件一样简单方便。 PageOffice是什么? PageOffice for ASP.NET是一款非常优秀的专业的集成微软OFFICE功能的ASP.NET控件平台,能够帮助Web开发人员轻松实现在网页中嵌入运行微软Office的特殊功能。PageOffice把微软复杂的Office编程接口(COM API) 有效地整合于 ASP.NET 环境,通过简化的.NET类库接口为开发者提供了在Web项目里获得Office众多强大功能的机会,并且能够同时利用来自 .NET Framework 的开发效率和软件功能。 集成PageOffice不但能够实现在线编辑保存真正的Office文档,而且还可以轻松实现Word、Excel文档的动态数据填充、格式控制和用户输入提交的高级复杂功能。只要集成PageOffice,您将能够轻松应对在Web项目开发中遇见的绝大部分和Office文档有关的功能和难题。您只需把精力集中在项目业务逻辑上,Office技术问题就交给PageOffice实现解决吧。 PageOffice除了提供Word/Excel动态数据填充,格式控制,Word/Excel用户输入提交,Word/Excel/PowerPoint/WPS等Office文档的在线打开、只读浏览、编辑保存等功能外,还给在线协同办公提供了强大的支持功能:可编辑区域控制,强制痕迹保留,并发编辑控制,手写批注,手写签名,圈阅签字,电子印章、动态模板套红等。 专业的MSDN风格的开发帮助,上百的示例代码,确保您的开发效率事半功倍。 运行环境 服务器端:Windows2003、Windows2008、Windows2012及Windows XP、Windows7、Windows8等(包括64位版本);.Netframework2.0及以上版本。 客户端:Windows XP、Windows Vista、Windows7、Windows8及以上版本(包括64位版本);Microsoft Office2003、2007、2010、2013;IE 6.0、7.0、8.0、9.0、10.0。 名称:PageOffice for ASP.NET专业版 2.0 下载:http://www.zhuozhengsoft.com/down/PageOffice_ASP.NET.rar 大小:13.8MB 版本:专业版 2.0

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值