`
妮子321
  • 浏览: 83912 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PageOffice--Word文档全文检索

 
阅读更多

一、 背景介绍

Word文档与日常办公密不可分,在实际应用中,当某一文档服务器中有很多Word文档,假如有成千上万个文档时,用户查找打开包含某些指定关键字的文档就变得很困难,目前网络上能找到的解决方案多是使用服务器端的Apache POI技术将所有文档的文本获取后存储到数据库,然后打开文档时利用sql语句检索文档是否包含关键字来判断是否是打开文档。但是这种解决办法有很大的弊端,首先POI技术对word文档支持不是很好,其中支持word的接口单一而且不太稳定,对word文档的格式也要求很高。其次如果将成千上万个文档使用poi将其文本内容存储到数据库这一操作将会在很大程度上影响服务器的性能。

PageOffice提供了获取Word文档全文纯文本的功能,可以把获取到的文本内容保存到数据库,利用数据库sql语句检索文档是否包含关键字来实现这一需求。PageOffice获取文档纯文本的工作是客户端执行的,这样就在很大程度上减轻了对服务器的压力,提高了服务器的性能。

二、主要实现代码

获取Word文档中的纯文本文件(不带任何附加格式)并保存到数据库,以后就可以简单的利用SQL查询轻松实现文档管理中的全文检索功能。

Java代码:

    FileSaver fs = new FileSaver(request, response);
    String strDocumentText = fs.getDocumentText(); 
    // 您可以把此文本字符串保存到数据库字段。保存到数据库的代码此处省略
    fs.saveToFile(request.getRealPath("doc/") + "/" + fs.getFileName());
    fs.Close();

ASP.NET代码:

    PageOffice.FileSaver fs = new PageOffice.FileSaver();
    string strDocumentText = fs.DocumentText; 
    // 您可以把此文本字符串保存到数据库字段。保存到数据库的代码此处省略
    fs.SaveToFile(Server.MapPath("doc/") + fs.FileName);
    fs.Close();

注意:此属性目前仅适用于Word。

三、示例说明

请参考PageOffice开发包中Samples4示例的综合演示:
三、全文搜索包含关键字的Word文档(专业版、企业版)

获取文档中的纯文本保存到数据库,根据关键字检索文档中是否包含该关键字。

  1. 数据库中的文档的存储结构说明(以access数据库为例)。
    144

  2. 搜索包含关键字的文档,以列表显示文档名。
    145

  3. 打开编辑包含关键字的文档,并且高亮显示关键字。
    146
    高亮显示的主要js代码:

     var sMac = "function myfunc()" + "\r\n"
          + "    Application.Selection.HomeKey(6) \r\n"
          + "    Application.Selection.Find.ClearFormatting \r\n"
          + "    Application.Selection.Find.Replacement.ClearFormatting \r\n"
          + "    Application.Selection.Find.Text = \"" + key + "\" \r\n"
          + "    While (Application.Selection.Find.Execute()) \r\n"
          + "        If (" + visible + ") Then \r\n"
          + "            Application.Selection.Range.HighlightColorIndex = 7 \r\n"
          + "        Else \r\n"
          + "            Application.Selection.Range.HighlightColorIndex = 0 \r\n"
          + "        End If \r\n"
          + "    Wend \r\n"
          + "    Application.Selection.HomeKey(6) \r\n"
          + "End function";
      document.getElementById("PageOfficeCtrl1").RunMacro("myfunc", sMac);     
分享到:
评论

相关推荐

    ASP.NET全文检索包含某关键字的word文档(示例)

    使用PageOffice开发平台,实现对word文档的在线处理,并搜索、显示含有关键字的文档。 要获取文档的纯文本,以往的方法都比较复杂,而且效率也不高,但是利用PageOffice的FileSaver 对象的DocumentText属性却能...

    PageOffice 基础教程.pdf

    此外,还涵盖了如何实现Word文档的全文检索和版本对比,以及用户自定义Word模板和合并多个Word文件的方法。 在Excel篇中,教程介绍了Workbook类、Sheet类、Table类和Cell类等常用接口对象,并指导如何动态填充Excel...

    用PageOffice通过Js编程实现在Word中插入书签.pdf

    总结来说,通过PageOffice,开发人员可以方便地利用JavaScript在Word文档中实现书签的动态插入和删除,这极大地提升了文档编辑和管理的效率。这种方法尤其适用于那些需要大量处理和定位Word文档内容的场景,如自动化...

    PageOffice+C#+SqlServer+Aspose.Word+Aspose.Cells实现上传word模板,通过标签保存填写的数据到数据库中

    用户可以通过浏览器选择本地的Word文档,PageOffice会将文件上传到服务器,以便后续处理。 C#作为开发语言,是.NET框架的主要组成部分,提供了一种高效、类型安全的方式来编写应用程序。在这个系统中,C#用于实现...

    StringBoot+Thymeleaf集成PageOffice

    PageOffice实现了在线编辑保存Word、Excel、PPT、WPS等Office文档的基本功能,对于简单的在线Office办公、追踪Word修订痕迹、全文检索的实现已经绰绰有余。本文简单的实现了word编辑和保存

    PageOffice的应用领域1

    2. **数据采集**:通过与Excel和Word的交互,PageOffice支持数据的导入导出,这对于数据录入和分析尤其有用,如报表制作、统计分析等场景,可以快速地从现有文档中提取数据。 3. **Word和Excel报表**:用户可以直接...

    JAVA读写Office

    上述代码展示了如何使用Apache POI的`WordExtractor`类来读取Word文档的内容。`WordExtractor.getText()`方法可以从输入流中提取文本内容,这对于简单的文本检索或内容分析很有帮助。 ```java WordExtractor ex = ...

    Solid.Converter.PDF v7.1

    Convert legacy scanned PDF files into well formatted, editable Word documents.(Requires Office 2003 or Office 2007) - Scan to Word. Scan directly from paper to well formatted, editable Word ...

    DSOFramer使用详细说明

    后端处理主要涉及的是`Getdc.aspx.cs`文件,它负责从数据库中检索指定ID的Office文档数据,并将其返回给前端页面。示例代码如下: ```csharp protected void Page_Load(object sender, EventArgs e) { int pid = ...

    LotusDomino学习笔记.doc

    - **结合方式**: 通过COM接口允许Notes应用程序调用MS Office组件的功能,如创建Word文档或发送Excel表格数据。 #### 25. 读写关系数据库资料 - **实现方法**: 通过ODBC或JDBC接口连接到关系数据库,并使用...

    南开15春学期《计算机应用基础》在线作业试卷一-最新.pdf

    `Page Up`:通常用于在文档中向上滚动一页。 - C. `Alt + F4`:关闭当前活动窗口的快捷键。 - D. `Ctrl + Space`:在某些程序中,例如中文输入法,这个组合键用于切换输入法的全角/半角状态。 这些知识点是...

    北大青鸟软件课程全部单词

    - **office**:指微软Office套件,包括Word、Excel、PowerPoint等应用。 - **copy**:复制,将选定的内容复制到剪贴板上,以便粘贴到其他位置。 - **find**:查找,搜索文档中的特定文本或数据。 - **table**:表格...

    版 & excel 菜单栏中英文对照表.pdf

    这份文档是针对Microsoft Office中的Word和Excel应用的菜单栏中英文对照表,旨在帮助用户更好地理解和使用这两个软件的各个功能。下面将详细解释其中的一些关键术语和功能。 1. **菜单栏**:在软件界面上方的一排...

    2021-2022计算机二级等级考试试题及答案No.3321.docx

    21. **Word默认文档**:Word启动后会自动创建一个名为“文档1”的空白文档。 22. **输入输出功能**:TextBox控件在编程环境中既可用于输入数据,也可以用于输出数据,如显示信息。 以上是对计算机二级等级考试中...

    Lotus Domino WEB详细 学习笔记

    50. Disabling actions until a page finishes loading 114 51. Web-based, fully customizable search 115 52. 从复选框中删除文档Deleting selected docs on Web 120 53. Debugging LotusScript Agents ...

    LotusDomino学习笔记(400页涵盖代理和公式使用)

    50. Disabling actions until a page finishes loading 114 51. Web-based, fully customizable search 115 52. 从复选框中删除文档Deleting selected docs on Web 120 53. Debugging LotusScript Agents 121 54. ...

    2021-2022计算机二级等级考试试题及答案No.18342.docx

    根据给定文件的信息,我们可以总结出以下几个重要的知识点: ### 1....在Microsoft Word中,可以通过插入页码来自动编号每一页,便于文档管理和阅读。这通常通过“插入”菜单中的“页码”选项来完成。

    2021-2022计算机二级等级考试试题及答案No.11050.docx

    实际上,办公自动化软件(如Microsoft Office套件中的Word、Excel等)属于应用软件,而非系统软件。系统软件主要包括操作系统(如Windows、Linux)、设备驱动程序等,其主要功能是管理和协调计算机硬件资源,以及...

    Lotus domino 学习大全

    在Lotus Domino中,可以通过检查文档的状态来判断文档是否正在被其他用户修改。这对于协作编辑环境尤为重要。 **应用场景举例:** 检查文档是否被锁定: ```lotusscript If doc.IsLocked ForEdit Then MsgBox ...

    2021-2022计算机二级等级考试试题及答案No.14903.docx

    3. Word2003操作:在Word2003中,【插入】/【图片】命令可以插入剪贴画、艺术字和自选图形,但不能直接插入公式,因此A选项正确。 4. SQL查询:在SQL中,LIKE操作符用于模糊匹配。要检索sname字段值第二个字符是"红...

Global site tag (gtag.js) - Google Analytics