【问题标题】:Copy Word format into Outlook message将 Word 格式复制到 Outlook 邮件中
【发布时间】:2011-01-07 17:12:34
【问题描述】:

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

这里是一些示例代码(没有清理):

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);

使用 Outlook/Word 2007,但 word 文件仍可能为 2000/2003 格式 (.doc)。
带有 .net 4.0 的 Visual Studio 2010(由于示例代码应该很明显)。

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

有什么建议吗?

【问题讨论】:

  • 你能展示一些你有的代码吗?
  • 我没有通过剪贴板使用复制/粘贴!

标签: c# outlook ms-word


【解决方案1】:

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

您可以使用的一种技术是将文档保存为 html 格式 - 这将添加额外的 html 单词倾向于添加,将 html 内容读入字符串,即该字符串将具有生成的标签 - ,然后创建一个Outlook mailItem 并将body format 设置为html。 - 并将正文设置为将单词保存在生成​​的 html 中的 html。

【讨论】:

  • 这个想法很清楚,但是如果我将 Word 文档保存为另一种格式(html、rtf)并尝试 2 获取未格式化的范围文本。也许你可以添加一些工作代码?
  • 最好 - 不确定它是否必须包含“对象” - 但我需要整个格式化的东西。
【解决方案2】:

Office 2007 提供“MailEnvelope”功能,可用于我的目的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-18
    • 1970-01-01
    • 2018-12-17
    • 1970-01-01
    • 1970-01-01
    • 2020-07-21
    相关资源
    最近更新 更多