繁体   English   中英

使用C#将Outlook联系人获取为CSV

[英]Getting Outlook contacts to CSV using C#

我遇到一个工作上的问题,那就是我们有一个销售团队,他们将他们的联系人存储在Outlook中并且不总是使用CRM,我们需要这些联系人来帮助进行销售分析。

现在,为了避免强迫销售团队使用CRM或手动导出他们的联系人,我正在寻找一种可能的方法,以编程方式从Outlook中提取他们的联系人,并创建一个CSV文件,该文件可以通过电子邮件发送到总部,然后添加到使用Perl脚本的数据库。

我对执行此操作的部分方法有想法,例如,我可以使程序作为定时任务每天运行,并在程序中存储一个小的SQLLite DB文件,以确保仅将新联系人添加到CSV中,并通过电子邮件将每个联系人时间。

我目前遇到的问题是,我很难找到有关如何使用C#与联系人联系的体面信息。 我已经看到一些基于使用Microsoft.Office.Interlop.Outlook命名空间的信息,但仅此而已。

如果有人可以将我指向一个尝试过类似操作的位置,以便我可以看到它是如何完成的,然后创建我的自定义程序。

预先感谢您的任何帮助

如果要访问Outlook数据(例如,联系人),则必须向Microsoft Outlook XX对象库添加COM引用。

之后,您可以创建Outlook应用程序对象的实例:

Microsoft.Office.Interop.Outlook.Application outlook;
outlook = new Microsoft.Office.Interop.Outlook.Application();   

您可以通过以下方式获取联系人集合:

Microsoft.Office.Interop.Outlook.MAPIFolder folder =
    outlook.GetNamespace("MAPI")
        .GetDefaultFolder(OlDefaultFolders.olFolderContacts);
IEnumerable<ContactItem> contacts = folder.Items.OfType<ContactItem>();

然后,您可以使用LINQ to Objects查询此集合:

var query = from contact in contacts
            where contact.Email1Address != null
            select contact;

Stefan Cruysbergs创建了一个OutlookProvider组件,该组件充当Outlook应用程序对象的包装。 您可以使用LINQ查询此提供程序并检索数据,例如联系人。

他在这里对此有完整的解释:

http://www.scip.be/index.php?Page=ArticlesNET05&Lang=NL

您可以在这里下载他的组件:

http://www.scip.be/index.php?Page=DownloadNETOfficeItems&Lang=NL

学习他的代码。 它应该足以让您入门。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM