【发布时间】:2011-03-20 23:17:40
【问题描述】:
使用 VB.Net,我需要从 Microsoft Outlook 2007 PST 文件和外部数据库中读取数据,并同步这两个来源。
过去在 SO 上的帖子提到了 Microsoft.Office.Interop.Outlook。我想知道 VB.Net 开发人员是否已成功使用它来处理 Outlook,或者我是否应该尝试其他解决方案。
谢谢。
【问题讨论】:
标签: vb.net outlook-2007
使用 VB.Net,我需要从 Microsoft Outlook 2007 PST 文件和外部数据库中读取数据,并同步这两个来源。
过去在 SO 上的帖子提到了 Microsoft.Office.Interop.Outlook。我想知道 VB.Net 开发人员是否已成功使用它来处理 Outlook,或者我是否应该尝试其他解决方案。
谢谢。
【问题讨论】:
标签: vb.net outlook-2007
如果您真的谈论“同步”,那么您应该看看 Microsoft Sync Framework。 http://msdn.microsoft.com/en-us/sync/default
这个框架有助于处理与同步相关的所有事情,当相同数据在两个地方发生变化时会发生什么,等等。他们有很多“提供者”,例如 Outlook 是一个“提供者”,您可以使用它在自己的数据和 Outlook 之间同步项目。
联系人同步示例(C#)
来自 msdn:
此示例显示如何创建自定义提供程序以在不同数据源之间同步内容。在此示例中,我们将在 Microsoft Outlook、Vista 联系人和 VCard 文件之间同步联系人。此演示的一个关键方面是数据映射功能,它使不同的数据源和数据类型能够通过 Sync Framework 进行适当映射
http://archive.msdn.microsoft.com/sync/Release/ProjectReleases.aspx?ReleaseId=613
还是老办法……
如果您只是想添加一些联系人或会议,那么旧的 office interopt 就足够了,这里有一个简单的示例,添加联系人的 11 行代码:
Dim OutlookApp As Outlook.Application = New Outlook.Application
Dim OutlookNameSpace As Outlook.NameSpace = OutlookApp.GetNamespace("MAPI")
OutlookNameSpace.Logon()
Dim Contacts As Outlook.MAPIFolder = OutlookNameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts)
Dim newContact As Outlook.ContactItem = OutlookApp.CreateItem(Outlook.OlItemType.olContactItem)
newContact.FullName = "Stefan Karlsson"
newContact.Email1Address = "myemail@mail.com"
newContact.BusinessHomePage = "www.example.com"
newContact.Save()
OutlookApp.Logoff()
OutlookApp.Quit()
(您必须添加对 Microsoft.Office.Interop.Outlook 的引用并将此导入添加到您的代码中才能使示例正常工作)
导入 Microsoft.Office.Interop
【讨论】:
您可能还会发现用于同步 Outlook 和 Gmail 帐户和联系人的免费 Outlook 插件很有用:http://scand.com/products/outlook4gmail/index.html。我在一周前发现了它,并且从那时起就一直在使用 Outlook 2007,尽管它也可以用于 Outlook 2010。这些功能真的很有用。
【讨论】: