我的目標是以某種方式讀取outlook .msg文件中的書籤,然後用不同的文本替換它們。我想用C#來做到這一點。用C#讀取MSG文件中的書籤
我知道如何訪問正文並更改文本,但想知道是否有直接訪問所有書籤列表及其位置的方法,以便我可以輕鬆地替換它們,而不是通過整個身體文本,分裂,等等等等...
編輯:this is how a bookmark window looks like從這個窗口可以分配書籤,但應該可以通過c#獲得這個列表。
任何相關的信息表示讚賞。 在此先感謝。
我的目標是以某種方式讀取outlook .msg文件中的書籤,然後用不同的文本替換它們。我想用C#來做到這一點。用C#讀取MSG文件中的書籤
我知道如何訪問正文並更改文本,但想知道是否有直接訪問所有書籤列表及其位置的方法,以便我可以輕鬆地替換它們,而不是通過整個身體文本,分裂,等等等等...
編輯:this is how a bookmark window looks like從這個窗口可以分配書籤,但應該可以通過c#獲得這個列表。
任何相關的信息表示讚賞。 在此先感謝。
由於展望most often uses Word as it's body editor - 你需要的項目引用添加到Microsoft.Office.Interop.Word.dll然後Inspector.Activate
活動期間訪問到Outlook檢查員WordEditor
。一旦你有權訪問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
}
}
}
};
我引用你說的microsoft.office.interop.word.dll,但是當我寫第一行時,我找不到Globals.ThisAddIn ..... – Mana
你使用的是什麼版本的Visual Studio和Office? [Globals.ThisAddIn由Visual Studio自動生成](http://msdn.microsoft.com/zh-cn/library/vstudio/bhczd18c.aspx),用於Office插件項目。如果你不使用Outlook插件 - 你不會有Globals.ThisAddIn。 – SliverNinja
即時通訊使用vs2005和辦公室2007年 我也有前景interop引用。 – Mana
我覺得很愚蠢,但是您的意思是電子郵件中的書籤是什麼意思? –
你是指郵件正文中的超鏈接嗎? – J0e3gan
如果您按下ctrl + shift + F5 您將收到書籤窗口,從這裏您可以爲單詞/文本分配書籤。 – Mana