【发布时间】:2018-08-10 03:26:55
【问题描述】:
如何检查word文件是否包含给定的单词?
示例: 我想写一个函数:bool IsContain(string word, string filePath)。 如果 filePath 包含 word,该函数将返回 true。否则会返回 false。
这是我使用 Aspose 框架的解决方案。有没有更好的解决方案?
public class FindContentOfWordDoc
{
public bool FindContent(string filePath, string content)
{
var doc = new Document(filePath);
var findReplaceOptions = new FindReplaceOptions
{
ReplacingCallback = new FindCallBack(),
Direction = FindReplaceDirection.Backward
};
var regex = new Regex(content, RegexOptions.IgnoreCase);
doc.Range.Replace(regex, "", findReplaceOptions);
return (findReplaceOptions.ReplacingCallback as FindCallBack)?.IsMatch ?? false;
}
private class FindCallBack : IReplacingCallback
{
public bool IsMatch { get; private set; }
ReplaceAction IReplacingCallback.Replacing(ReplacingArgs e)
{
IsMatch = true;
return ReplaceAction.Stop;
}
}
}
谢谢!
【问题讨论】:
-
我尝试使用 Aspose 框架字。有没有更好的解决方案?
-
你说的是 Microsoft Word 吗?
-
是的,我说的是 MS Word。
-
您是否尝试过将整个文件作为字符串读取并从那里检查? AFAIR 通常不会在 word 文档中加密文本。
-
不,我没试过。