我的目标是以某种方式能够读取 outlook .msg 文件中的书签,然后用不同的文本替换它们。我想用 C# 来做到这一点。
我知道如何访问正文和更改文本,但想知道是否有办法直接访问所有书签的列表及其位置,以便我可以轻松替换它们,而不是浏览整个正文,将其拆分等等......
编辑:this is how a bookmark window looks like可以从该窗口分配书签,但应该可以通过 C# 获取该列表。
如有任何相关信息,我们将不胜感激。 提前致谢。
最佳答案
自展望most often uses Word as it's body editor - 您需要添加对 Microsoft.Office.Interop.Word.dll 的项目引用,然后访问 Outlook Inspector 的 WordEditor
在Inspector.Activate
期间事件。一旦您有权访问 Word.Document
- 这对 load up the Bookmarks
来说是微不足道的并访问/修改它们的值。
Outlook.Inspector inspector = Globals.ThisAddIn.Application.ActiveInspector();
((Outlook.InspectorEvents_10_Event)inspector).Activate += () =>
{ // validation to ensure we are using Word Editor
if (inspector.EditorType == Outlook.OlEditorType.olEditorWord && inspector.IsWordMail())
{
Word.Document wordDoc = inspector.WordEditor as Word.Document;
if (wordDoc != null)
{
var bookmarks = wordDoc.Bookmarks;
foreach (Word.Bookmark item in bookmarks)
{
string name = item.Name; // bookmark name
Word.Range bookmarkRange = item.Range; // bookmark range
string bookmarkText = bookmarkRange.Text; // bookmark text
item.Select(); // triggers bookmark selection
}
}
}
};
关于c# - 用C#读取outlook MSG文件中的书签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16559739/