C# 将Word格式复制到Outlook邮件中

C# 将Word格式复制到Outlook邮件中,c#,outlook,ms-word,C#,Outlook,Ms Word,我有一个outlook自动化系统。我想使用Word文档作为消息内容的模板。假设我有一些包含表格、颜色、大小等的格式化文本。现在我想将这些内容复制/粘贴到Outlook邮件对象中。 以下是一些示例代码(无清理): 但是,使用Outlook/Word 2007,Word文件仍然可以采用2000/2003格式(.doc)。 Visual Studio 2010和.net 4.0(由于示例代码的缘故,应该很明显) 我习惯于互操作,我知道我目前只是复制“纯文本”。我认为这必须通过从word文档中检索rtf

我有一个outlook自动化系统。我想使用Word文档作为消息内容的模板。假设我有一些包含表格、颜色、大小等的格式化文本。现在我想将这些内容复制/粘贴到Outlook邮件对象中。

以下是一些示例代码(无清理):

但是,使用Outlook/Word 2007,Word文件仍然可以采用2000/2003格式(.doc)。
Visual Studio 2010和.net 4.0(由于示例代码的缘故,应该很明显)

我习惯于互操作,我知道我目前只是复制“纯文本”。我认为这必须通过从word文档中检索rtf/html来完成


有什么建议吗?

您正在读取内容的字符串将无法保持格式。您需要通过其他方式复制所选内容以保留格式


您可以使用的一种技术是以html格式保存文档-这将添加额外的html单词,将html内容读入字符串,即此字符串将具有生成的标记-,然后创建outlook mailItem并将其设置为html。-并将正文设置为以html格式保存单词所生成的html。

您正在读取内容的字符串将无法保持格式。您需要通过其他方式复制所选内容以保留格式


您可以使用的一种技术是以html格式保存文档-这将添加额外的html单词,将html内容读入字符串,即此字符串将具有生成的标记-,然后创建outlook mailItem并将其设置为html。-并将正文设置为以html格式保存生成的单词的html。

Office 2007提供了“邮件信封”功能,可用于我的目的。

Office 2007提供了“邮件信封”功能,可用于我的目的。

您能展示一些代码吗?我没有使用剪贴板进行复制/粘贴!你能给我看看你的代码吗?我不是用剪贴板复制粘贴的!这个想法很清楚,但是如果我用另一种格式(html,rtf)保存单词doc,然后尝试2获取rangetext,它就没有格式化。也许你可以添加一些工作代码?最好是-不确定它是否必须包含“对象”-但我需要整个格式化的东西。想法很清楚,但是如果我用另一种格式(html,rtf)保存单词doc,然后尝试2获取未格式化的rangetext。也许你可以添加一些工作代码?最好-不确定是否必须包含“对象”-但我需要整个格式化的东西。
String path = @"file.docx";
String savePath = @"file.msg";
Word.Application wordApp = new Word.Application();
Word.Document currentDoc = wordApp.Documents.Open(path);
Word.Range range = currentDoc.Range(0, m_CurrentDoc.Characters.Count);
String wordText = range.Text;

oApp = new Outlook.Application();
Outlook.NameSpace ns = oApp.GetNamespace("MAPI");
ns.Logon("MailBox");
Outlook._MailItem oMsg = oApp.CreateItem(Outlook.OlItemType.olMailItem);
oMsg.To = "mymail@someserver.com";
oMsg.Body = wordtext;
oMsg.SaveAs(savePath);