问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在线打开word文档并高亮显示指定关键字

发布网友 发布时间:2022-04-20 08:18

我来回答

1个回答

热心网友 时间:2022-04-07 08:22

本文通过一个实用例子完整演示如何在线打开word文档并高亮显示指定的关键文字。
1. 项目目的
目前,Office文件的在线处理越来越深入人心,越来越多的办公系统中的Word文档都采用了SOAOffice中间件来在线打开保存,同时也产生了一些更好、更高级的需求,本文所讨论的正是这样的一个需求:
打开文档的时候,高亮显示指定的关键字。
搜索结果高亮显示关键字。
2. 思路
写一个查找函数,可以在查找结束的时候,高亮显示所有的关键字,如果要求打开文档的时候就高亮显示的话,可以在文档打开的事件中处理;如果要高亮显示多个不同的关键字的话,可以用这个函数进行多次的搜索。
3. 关键函数
function MarkKeyWord(value)
{
var appSlt = document.getElementById("SOAOfficeCtrl").Document.Application.Selection;
appSlt.HomeKey(6); // 设置文档中的光标到文件首。
appSlt.Find.ClearFormatting();
appSlt.Find.Replacement.ClearFormatting();
appSlt.Find.Text = value;
while (appSlt.Find.Execute()){
appSlt.Range.HighlightColorIndex = 7; // 高亮时的背景色
}
appSlt.HomeKey(6);
}
4. 示例程序架构
这里使用ASP.NET示例,关键代码就是上面的那个函数,用什么开发语言都可以做这个效果,这个应用也不涉及到保存,为了简单,保存的代码也忽略掉了。
Demo/
|---- Highlight.aspx // 打开文档的页面
|---- Highlight.aspx.cs
Doc/ //存放文档的目录
|-- test.doc //测试文件,test.asp就是打开的这个文件
5. 代码编写
Highlight.aspx
************************
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Highlight.aspx.cs" Inherits="Highlight" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Highlight</title>
<script type="text/javascript">
function MarkKeyWord(value)
{
var appSlt = document.getElementById("SOAOfficeCtrl").Document.Application.Selection;
appSlt.HomeKey(6);
appSlt.Find.ClearFormatting();
appSlt.Find.Replacement.ClearFormatting();
appSlt.Find.Text = value;

while (appSlt.Find.Execute())
{
appSlt.Range.HighlightColorIndex = 7;
}
appSlt.HomeKey(6);
}
</script>
</head>
<body>
<form id="formData" runat="server" method="post">
<div>

</div>
<!--************** SOAOFFICE 客户端代码开始 ************************-->
<SCRIPT language="JavaScript" event="OnInit()" for="SOAOfficeCtrl">
// 控件打开文档前触发,用来初始化界面样式
</SCRIPT>
<SCRIPT language="JavaScript" event="OnDocumentOpened(str, obj)" for="SOAOfficeCtrl">
// 控件打开文档后立即触发,添加自定义菜单,自定义工具栏,禁止打印,禁止另存,禁止保存等等
bDocOpen = true;
MarkKeyWord("试");
</SCRIPT>
<SCRIPT language="JavaScript" event="OnDocumentClosed()" for="SOAOfficeCtrl">
bDocOpen = false;
</SCRIPT>
<SCRIPT language="JavaScript" event="OnUserMenuClick(index, caption)" for="SOAOfficeCtrl">
// 添加您的自定义菜单项事件响应
</SCRIPT>
<SCRIPT language="JavaScript" event="OnCustomToolBarClick(index, caption)" for="SOAOfficeCtrl">
// 添加您的自定义工具栏按钮事件响应
</SCRIPT>
<!-- OBJECT标签,客户端控件引用 -->
<OBJECT id="SOAOfficeCtrl" codeBase="SOAOffice.ocx#version=8,1,0,0" height="100%" width="100%"
data="" classid="clsid:83171BA4-BDCA-42a8-BE44-745ABF36EB7E" VIEWASTEXT>
<div STYLE="color:red;">
本机尚未安装SOAOFFICE客户端控件,请安装浏览器上方*提示条或弹出提示框中的SOAOFFICE客户端控件。</div>
</OBJECT>
<!--************** SOAOFFICE客户端代码结束 ************************-->
</form>
</body>
</html>

Highlight.aspx.cs
******************
// 仅在Page_Load中添加下面的代码即可
protected void Page_Load(object sender, EventArgs e)
{
//----------- SOAOFFICE 服务器端编程开始 -------------------//

// 首先确保引用SOAOFFICE中间件的服务器端.NET组件SOAOfficeX
// SOAOfficeX.dll 在本示例代码的 bin 文件夹下
SOAOfficeX.SOAOfficeCtrl SOACtrl = new SOAOfficeX.SOAOfficeCtrl();

// 设置SOAOFFICE中间件服务页面
SOACtrl.ServerURL = "soaservice/soaserv.aspx";
SOACtrl.SaveDocURL = "SaveDoc.aspx";

SOACtrl.WebOpen("doc/test.doc", SOAOfficeX.soaWorkMode.docNoRevision, "somebody", "Word.Document");
//----------- SOAOFFICE 服务器端编程结束 -------------------//

}
6. 思路拓展
利用这个技术(主要是MarkKeyWord函数),其一,可以实现在文档打开以后的任何时候执行搜索高亮显示,不一定是在文档的的同时;其二,可以高亮显示关键字,那么也就可以取消高亮显示,这样又可以重新搜索高亮显示其他的关键字;其三,可以同时高亮显示多个关键字,只需要设置不同的高亮颜色就可以了,修改HighlightColorIndex的值:
appSlt.Range.HighlightColorIndex = 7; // *
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苏打地牢500层boss怎么打 苏打地牢500层boss打法攻略 隐形眼镜用水龙头水泡着可以么 ...还有些痒痒的 越来越多的趋势 请问这是什么原因引起的 长安univ智电idd改无线充怎么改的 山药泥火龙果的做法 铜合金好还是纯铜好 铜合金和铜哪个好 合金为什么比铜要好 合金和铜哪个好 音乐风格要素主要包括 如何设置浏览器才可直接在线阅读WORD文档 php实现word文档在线浏览功能 .net Word文档如何在线浏览 如何实现word在线阅读;当点击连接,在浏览器里面... 如何设置浏览器才可直接在线阅读WORD文档? 在线查看Word/Excel/PDF文档 怎样在线查看和编辑Word文档 什么是DVI数字接口? dvi接口是什么 DVI接口是什么东西 电脑主机DVI连接口是干什么用的? 显示器DVI接口,是什么意思? DVI接口是啥东东 请问DVI接口是什么。 DVI-D接口是什么? 什么是DVI接口? DVI接口是什么? dvi接口是什么,dvi接口是什么知识 带羽 字并具有深刻意义的四字词语或成语带羽字的具有 ,羽可以组什么词 php在线预览word,txt,xls文件,怎么做 如何在线查看word和excel DATA计算器里用哪个键代替 求各位前辈们指点,女孩子的防狼工具都有哪些比较好... 女士用的防狼工具都有哪些,谁用过?哪种效果最好. 仿狼喷雾是什么? 狼夹子制作 防狼警报器能过安检吗? 女生一个人走夜路,应该买防狼喷雾吗? 有哪些可以用来“防身”的工具? 对付狼最好的武器 女生如何防狼 防狼手则?? 女生保护自己的有哪些工具 下列古代文明中诞生在意大利半岛的台伯河畔的是( ... 在野外作业,遇到狼等野兽,有什么好的防御工具及... 女生怎样防色狼性骚扰? 乔思伯UMX4和海盗船540D选哪个 用来打狼的工具有哪些?请教一下. 女生应该如何防狼和防止性骚扰呢