嗨,我们有一个要求,比如在 windows7/vista“预览窗格”中预览文档,并且必须在 Winforms 中实现搜索功能。为此,我已将 Ms office 文档、Excel Sheets 和 Power Point 文档加载到 Webbrowser html 格式的控件。现在我们需要在该 webbrowser 控件中实现搜索功能。为此,我们使用以下代码实现了搜索功能
public bool FindNext(string text, WebBrowser webBrowser1)
{
IHTMLDocument2 doc = webBrowser1.Document.DomDocument as IHTMLDocument2;
IHTMLSelectionObject sel =doc.selection;// (IHTMLSelectionObject)doc.selection;
IHTMLTxtRange rng = sel.createRange() as IHTMLTxtRange;
rng.collapse(false); // collapse the current selection so we start from the end of the previous range
if (rng.findText(text, 1000000, 0))
{
rng.select();
return true;
}
else
FindFirst(text, webBrowser1);
return false;
}
此代码适用于在 word Document 中搜索所有出现的字符串值。但是,当涉及到 Excel 和 PPt 文档时,此代码无法正常工作。它仅找到字符串的第一次出现,其他出现找不到。在调试时我发现,对于 word 文档“IHTMLDocument2”对象将 html 内容存储在“innerHTML”和“innerText”中,并带有一些值。但是对于 Excel,它仅通过使用框架将文本存储在“innerHTML”中,并且工作表被引用到本地临时 .html 文件,并且它没有任何“innerText”内容显示为空。
Please provide the solution to search the text in webbrowser control which loaded the html content, that is converted from
Excel、PPT 转为 html 类型并在 webbrowser 控件中显示。
如果您有任何疑问,请随时问我。
谢谢你。