代码之家  ›  专栏  ›  技术社区  ›  Jonas Lincoln

将所有联系人从Outlook导出为vCard

  •  4
  • Jonas Lincoln  · 技术社区  · 16 年前

    所以,我想将Outlook中的所有联系人导出为vCard。如果我用谷歌搜索的话,我会得到很多共享软件程序,但我想要一些免费的软件。

    如果要自己编写代码,我想应该使用microsoft.office.interop.outlook程序集。是否有人已经编码将联系人项目转换为vCard?

    编辑: 我以完全不同的方式解决了这个问题,见下面的答案,但我已经将dok1.myopenid.com的答案标记为接受,因为它回答了我原来的问题。

    4 回复  |  直到 12 年前
        1
  •  10
  •   Jonas Lincoln    16 年前

    我以非编程方式解决了它:

    • 已选择Outlook中的所有联系人
    • 把它们作为卡片转发给我自己
    • 将所有附件(vCard)保存到文件夹中, c:\temp
    • 打开命令提示符并键入命令 copy /a *.vcf c:\allcards.vcf 将所有vCard连接成一个
        2
  •  4
  •   Adam Lear    12 年前

    值得一提的是,我刚刚遇到了这个线程,它正在从Outlook中寻找同一个导出到单个.vcf文件的线程。我选择了所有联系人,并将其拖到新的电子邮件中,作为单独的.vcf文件添加。添加完这些文件后,我单击了新电子邮件的“附件”部分,按ctrl-a突出显示所有这些文件,然后左键单击将第一个文件(以及所有文件)拖到了我想要的单个.vcf文件所在的文件夹中。几分钟的展望“思考”我的400个联系人,他们都在那里!

        3
  •  3
  •   DOK    16 年前

    他们肯定很难找到,不是吗?看看这是否有帮助。 http://msdn.microsoft.com/en-us/library/aa579624(EXCHG.80).aspx

    其中包括:以下示例使用CDO Person对象获取联系人的vCard信息。

    Dim oPerson As New CDO.Person
    Dim strm As New ADODB.Stream
    
    ' Assume strURL is a valid URL to a person contact item
    oPerson.DataSource.Open strURL
    
    ' You can set the ADO Stream object to the returned vCard stream
    Set strm = oPerson.GetvCardStream
    
    ' Save the stream to a file.
    ' Note: using adSaveCreateOverwrite may cause an existing
    ' contact to be overwritten.
    strm.SaveToFile "d:\vcard.txt", adSaveCreateOverwrite
    
    ' You don't have to set a Stream object,
    ' just use the Stream methods off GetvCardStream directly
    oPerson.GetvCardStream.SaveToFile "d:\vcard.txt", adSaveCreateOverwrite
    

    是的,唯一的代码示例在VB中。

        4
  •  1
  •   Joe    13 年前

    刚买了X8,就要发疯了,因为我无法轻松地传送我的联系人……直到我开始在电话里四处窥探。

    首先,将Outlook中的所有联系人导出到vCard(我发现通过电子邮件将他们发送给自己是最简单的方法)。如果您收到一条错误消息“发送到多个附件…”,您可以将它们从电子邮件中保存到“已发送邮件”文件夹中),然后将vCard复制到手机的存储卡上。

    其次,打开电话上的通讯录,然后按电话上的左键(上面有4个小方块的按钮)。不是屏幕上的4个框…物理按钮!).

    第三,选择“导入/导出”,然后选择“从存储卡导入”。导入所有vCard文件,您应该是金色的。

    幸运的是……不要问我任何问题,因为我不会再去看更多的帖子了……只是路过试图自己解决。