PageOffice 开发者中心 PageOffice 开发者中心
首页
文档
  • 后端Java手册 (opens new window)
  • 后端.netcore手册 (opens new window)
  • 前端JavaScript手册 (opens new window)
下载
购买 (opens new window)
首页
文档
  • 后端Java手册 (opens new window)
  • 后端.netcore手册 (opens new window)
  • 前端JavaScript手册 (opens new window)
下载
购买 (opens new window)
  • 开始

  • 通用控制

  • Word

    • 常用控制

      • 强制留痕模式编辑
      • 显示痕迹列表效果
      • 只读打开文档
      • 文件在线安全浏览
      • 比较两个Word文件的内容差异
      • 编辑时禁止拷贝到外部
      • 禁止Word中鼠标右键
      • 多用户同时编辑
      • Word多文件合并
      • 控制Word编辑区域(局部编辑)
      • 添加水印
      • 插入分页符
      • 模板套红
      • 从模板起草文件
      • 创建空白的word、excel、ppt
      • 用户自定义模板中数据区域
      • 用户自定义模板中数据标签
      • 数据区域与数据标签的区别
      • Word全文检索
        • Word套打
        • 锁定文本样式
        • 用前端框架内置对话框在Word中填空填表
        • 保存Word首页为图片
      • 动态填充

      • 用户输入提交

      • JS控制

    • Excel

    • PDF

    • FileMaker

    • PPT

    • 更多

    目录

    Word全文检索

    # Word全文检索

    • 查看本示例演示效果
    • 本示例关键代码的编写位置,请参考“开始 - 快速上手”里您所使用的开发语言框架的最简集成代码

    注意

    本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如文档路径,用户名等做适当修改即可使用。

    在文档服务器中存储有成千上万个文档的情况下,用户想要找到并打开包含特定关键字的文档,无疑是一项艰巨的任务。如何高效地管理和检索大量的Word文档呢?

    在现有的技术解决方案中,许多方法都依赖于服务器端的Apache POI技术。这种技术的基本原理是,先将所有文档的文本内容提取出来,然后存储到数据库中。当用户需要打开文档时,系统会通过SQL语句检索数据库,判断文档是否包含用户指定的关键字。然而,这种解决方案存在明显的弊端。首先,POI技术对Word文档的支持并不完善,其提供的接口较为单一且稳定性不足,对文档格式的严格要求也增加了使用的难度。其次,将成千上万个文档的文本内容提取并存储到数据库中,这一操作本身就会对服务器的性能产生巨大的压力,影响服务器的正常运行。

    PageOffice提供了一种新的解决方案。它能够在每次保存文件的时候获取Word文档的全文纯文本内容,并将其保存到数据库中。这样,当用户需要检索包含特定关键字的文档时,就可以直接通过数据库的SQL语句来实现。更为重要的是,PageOffice的这一功能是在客户端执行的,也就是说,它将文档的处理工作量从服务器端转移到了客户端,极大地减轻了服务器的负担,既能够满足用户对于文档检索的需求,又能够保证服务器的稳定运行。

    # 后端代码

    每次保存文档的同时,获取Word文档中的纯文本字符串并保存到数据库,以后就可以简单的利用SQL查询轻松实现文档管理中的全文检索功能。

        FileSaver fs = new FileSaver(request, response);
        String strDocumentText = fs.getDocumentText(); 
        // 您可以把strDocumentText保存到数据库字段。保存到数据库的代码此处省略
        fs.saveToFile(request.getRealPath("doc/" + fs.getFileName()));
        fs.close();
      
        PageOfficeNetCore.FileSaver fs = new PageOfficeNetCore.FileSaver(Request, Response);
        await fs.LoadAsync();
        string strDocumentText = fs.DocumentText; 
        // 您可以把strDocumentText保存到数据库字段。保存到数据库的代码此处省略
        string webRootPath = _webHostEnvironment.WebRootPath;
        fs.SaveToFile(webRootPath + "/SaveAndSearch/doc/" + fs.FileName);
        fs.Close();
      
      // Make sure to add code blocks to your code group

      # 前端代码

      在线打开Word文件之后,可以使用下面的SetKeyWord函数,设置Word文件中的所有的关键字高亮显示。

      
      function SetKeyWord(key,visible) {
          if (key == "null" || "" == key) {
              alert("关键字为空。");
              return;
          }
          let falg = true;
          pageofficectrl.word.HomeKey(6);
          while(falg){
              if(pageofficectrl.word.FindNextText(key)){
                  if(visible){
                      pageofficectrl.word.SetHighlightToSelection(7);//高亮显示
                  }else{
                      pageofficectrl.word.SetHighlightToSelection(0);//取消高亮
                  }
              }else{
                  pageofficectrl.word.HomeKey(6)
                  break;
              }
          }
      }
      
      
      上次更新: 2026/04/09, 10:56:50
      PageOffice | Copyright © 2013-2026 卓正软件 京ICP备12010902号-2 京公网安备 11010502019270号
      • 跟随系统
      • 浅色模式
      • 深色模式
      • 阅读模式