美文网首页
2023-05-05163邮箱的联系人批量导入到outlook里

2023-05-05163邮箱的联系人批量导入到outlook里

作者: 八段锦1134 | 来源:发表于2023-05-03 23:04 被阅读0次

    问题提出:Outlook系列软件在导入vCard(*.vcf)格式的联系人时一次只能导入成功一个,不能够多选,如何可以批量导入?

    背景:我的outlook是买官方office365自带的,但我不想买office收费的软件来批量导入联系人,毕竟只用1次。于是折腾了一下,用到了R和outlook自带的vb。

    第一步,首先我是走正常渠道,从163邮箱的联系人里面将所有联系人直接导出,如下图所示

    图片.png

    第一个坑来了,导出就是要选”GB2312"。如果选的”UTF-8(默认)“,那么导出最后面到outlook里中文就是乱码。


    图片.png

    第二步,用R将一个vcf文件拆分为多个vcf文件

    导出的是一个文件address(而outlook一次只能导入一条信息,粘贴复制几百次会气死!),所以我折腾了半天找各种软件也没找到合适的(关键还是要免费,毕竟这个东西就用1-2次,使用频率低的可怜,没必要花钱),一气之下,我就去R里把它拆分成了n个vcf文件,我发现文件address里的内容很有规律,每个联系人邮箱信息的开头是“BEGIN:VCARD”和结尾都是“END:VCARD”,应该不难,但我不会写循环之类的,于是通过新必应问到了一个可运行的R代码(再次感叹Al真好啊,可以每句都给出中文解释太贴心了):

    library(stringr) # 加载stringr包
    library(dplyr) # 加载dplyr包
    vcf <- readLines("address-GB2312.vcf") # 读取名为"address"的vcf文件
    vcf <- paste0(vcf, collapse = "\n") # 将vcf文件转换为字符串
    vcf <- str_split(vcf, "\n(?=BEGIN:VCARD)")[[1]] # 根据"BEGIN:VCARD"分割字符串
    vcf <- lapply(vcf, function(x) { # 对每个字符串进行操作
      x <- str_split(x, "\n") # 根据"\n"分割字符串
      x <- unlist(x) # 将列表转换为向量
      x <- x[x != ""] # 去除空白行
      x <- paste0(x, collapse = "\n") # 将向量转换为字符串
      return(x)
    })
    vcf <- lapply(vcf, function(x) { # 对每个字符串进行操作
      if (grepl("END:VCARD", x)) { # 如果字符串中包含"END:VCARD"
        return(x) # 返回该字符串
      }
    })
    vcf <- Filter(Negate(is.null), vcf) # 去除空值
    for (i in seq_along(vcf)) { # 对每个字符串进行操作
      writeLines(vcf[[i]], paste0("address-", i, ".vcf")) # 将字符串写入名为"address-X"的vcf文件中,X为文件编号
    }
    

    第三步,把拆分的文件放一个位置(等会儿vb脚本要指定你放的位置),比如我直接放的C盘里(C:\vCards)

    图片.png

    第四步,在outlook里运行vb脚本,当然vb脚本也是求助的新必应

    https://answers.microsoft.com/zh-hans/outlook_com/forum/all/outlook%E6%80%8E%E4%B9%88%E6%89%B9%E9%87%8F/f6c50d4f-ec6e-e011-8dfc-68b599b31bf5
    这个老兄写的脚本不能运行,不知道是不是outlook升级了怎么的,但前面的设置是参考他的,直接搬过来

    1,把所有vCards文件放在一个文件夹内。例如C:\VCARDS (第三步已经放了)。
    2,打开Outlook的VBA编辑器。(ALT + F11 呼出) 。
    3,单击“工具”–>“引用”,勾中“Windows Script Host Object Model ”和“Microsoft Scripting Runtime” 。
    4,单击“插入”–>“模块”,把下列代码粘帖进去。保存。
    5,回到Outlook画面,单击“开发工具”––>“宏”––>“找到刚刚添加的宏”(开发工具默认没启用,需在“文件”––>“选项”––>“自定义功能区”找到开发工具勾选上)
    6,运行。
    以下是我找newbing给我的代码,能运行成功:

        Sub ImportContacts()
            Dim objFSO As Object
            Dim objFolder As Object
            Dim objFile As Object
            Dim objContact As Outlook.ContactItem
            Dim strFolderPath As String
            
            ' Set the folder path where the vCard files are located
            strFolderPath = "C:\vCards\"
            
            ' Create a FileSystemObject
            Set objFSO = CreateObject("Scripting.FileSystemObject")
            
            ' Get the folder object associated with the folder path
            Set objFolder = objFSO.GetFolder(strFolderPath)
            
            ' Loop through all files in the folder and import them as contacts
            For Each objFile In objFolder.Files
                If Right(objFile.Name, 4) = ".vcf" Then
                    Set objContact = Application.Session.OpenSharedItem(objFile.Path)
                    objContact.Save
                End If
            Next
            
            ' Clean up
            Set objContact = Nothing
            Set objFile = Nothing
            Set objFolder = Nothing
            Set objFSO = Nothing
            
        End Sub
    
    保存后点击运行这个脚本

    总结

    1、新必应的chat等都是辅助工具,不能想着自己完全不动脑子,那就完蛋了。最开始我从163邮箱默认导出的是utf-8格式的文件,怎么让newbing换代码都不能运行,结果我认真去看了看它给我的反馈“I’m glad to hear that the code is working for you. The issue with garbled Chinese characters may be related to the encoding of the vCard files. By default, vCard files are encoded using the UTF-8 character set, which supports Chinese characters . However, it’s possible that the files you are importing are encoded using a different character set.”我才意识到问题出在文件格式,尝试从163邮箱导出的时候就变一下格式(也可能我的outlook是英文版的,如果是中文版的是不是默认的utf-8就行了呢,有需要的可以试试)。
    2、英语很重要啊。实测用英语跟chat沟通,得到正确答案的概率直线飙升。
    3、要有耐心,解决问题、写东西,所有这些,耐心点。比如,我之前没怎么学习怎么高效提出prompt,但我耐心的一点一点给信息,还是解决问题。刚开始学,很多不懂要耐心,学有所成ego就很高,遇到问题容易崩也要耐心。

    相关文章

      网友评论

          本文标题:2023-05-05163邮箱的联系人批量导入到outlook里

          本文链接:https://www.haomeiwen.com/subject/omatsdtx.html