shuren88 发表于 2012-2-24 10:44:22

处理Nokia导出的CSV格式联系人的宏程序



Excel-AutoLoadMacro-CSVtool-OK.xla使用方法:

'by ybmj@vip.163.com        20120201

1、下载安装Nokia_PC_Suite,可以与Nokia_Suite并存。
(在Nokai的US位置下载,http://www.nokia.com/us-en/support/downloads)。
注意:Nokia_PC_Suite_eng_web-7.1.108.46在Server系统下必须以XP兼容方式安装。右键设置XP兼容方式Run,OK确认。
然后运行Nokia_PC_Suite_eng_web-7.1.108.46.exe,使用默认模式安装。
提示时选择:“Do not participate”
取消自动启动,在菜单中取消选择File|Invoke at startup(启动时自动调用)。或者删除以下注册表项目:

"PC Suite Tray"="\"E:\\Program Files (x86)\\Nokia\\Nokia PC Suite 7\\PCSuite.exe\" -onlytray"

连接E73,单击联系人Contacts,便会自动从手机读入所有联系人。
读入完成,如果需要,可以单击Name栏目标题栏,使联系人按照姓名排序。
然后再按Ctrl+A选中所有联系人,便可以选择菜单File|Export导出为*.csv。
导出完成会有提示,这样导出的联系人信息最为完整。

2、可跳过。备份E73,打开菜单File|Backup项目,使用默认备份项目。设置手机备份文件存放目录为
i:\MinJun.bak\mj-E73\Nokia PC Suite\Backups\2012-01-30 MJ-E73.nbu
注意:备份一次大约需要30分钟,蓝牙速度只有200KB/S,数据有10多兆。
当然,为提高速度,可以使用USB连接电脑进行备份,注意在手机上插上USB连线提示时必须选择PC Suite,连接成功在Nokia PC Suite会显示为USB连接。速度可以到达5MB/S,时间很快只需几分钟。不用拔掉蓝牙适配器,备份完成可以直接拔掉USB连线,Nokia PC Suite会自动切换到蓝牙连接。

3、可跳过。建议不要使用Nokia_PC_Suite、Nokia_Suite的Outlook同步功能。原因是会丢失一些电话号码。这是经过多次实验证实的经验之谈。
结论-Outlook2003导出导入csv格式OK-导出导入xls格式有问题(不全面)

手机与Outlook2003同步后的手机号码也不全面

最好避开使用Outlook2003。若必须使用也要使用csv格式导出导入,可以不丢失手机号码。

最好是通过Nokia PC Suite导出导入csv格式。csv格式文件可以使用Excel进行处理。

另外,发现Nokia_Suite_webinstaller_ALL-3.3.86.0-en-Best.exe安装,同步联系人到Outlook2003不全,会丢失一些电话号码。
没有什么用,与PC Suite比主要是加强Internet功能,后来已经卸载。
注意:Nokia_Suite_webinstaller_ALL-3.3.86.0-en在W2K8R2安装和使用都不用设置SEP。

4、启动Nokia_PC_Suite,连接E73,然后单击打开Contacts。
在出现的Nokia Communication Centre中,选中需要导出的联系人,可以使用Ctrl+A选中所有联系人。
然后再打开File|Export,将选中的联系人导出为csv格式文件,比如MyCsv.csv。

5、Excel处理从Nokia PC Suite导出的MyCsv.csv的优化方法
(1)、Excel-AutoLoadMacro-CSVtool-OK.xla是已经编辑好的Excel的自动加载宏文件,其中已经包含了下面要用到的5个宏程序。
        将该文件拷贝到e:\Users\MinJun\AppData\Roaming\Microsoft\AddIns\目录下面,注意MinJun为用户名,用户名不同需要进行相应修改。
        然后打开Excel,选择菜单Tools|Add-Ins,便可以看到Excel-AutoLoadMacro-CSVtool-OK,选中该项目OK退出即可。
        如果没有看到该项目,可以使用Browse...进行浏览加载。
        注意,这是Windows7和Windows 2008 Server R2的AddIns存放目录,其他版本Windows的AddIns存放目录可能有所不同,可以在网上搜一搜。
        该自动加载宏启用成功后,可以看到增加的CSVtool菜单栏和增加的工具栏,他们分别对应下面的5个宏程序。
        菜单栏可以根据菜单名称对应,工具栏按钮可以根据提示区分。

(2)、不能直接双击MyCsv.csv让Excel打开,这样打开后许多区号中0就已经被Excel认为丢失。

(3)、正确的办法是使用Excel的数据导入功能:
(A)、先直接启动Excel;
(B)、然后打开菜单Data|Import External Data|Import Data...;
(C)、选中需要导入的从Nokia PC Suite导出的MyCsv.csv文件;
(D)、在Step 1 of 3,直接单击Next到下一步;
(E)、Step 2 of 3是最关键的一步。
        首先在Delimiters(分隔符)栏取消Tab、选中Comma;
        然后必须在Text qualifier(文本限定符)栏选择{none},可以清楚看到选择不同文本限定符后,下面的Data preview栏的数据变化。
        设置好后,再单击Next到下一步。
        实际上,由于有以上正确设置的保证,在这一步便可以直接单击Finish,在出现的Import Data对话框中直接单击OK,完成导入。
(F)、在Step 3 of 3,可以直接单击Finish,在出现的Import Data对话框中直接单击OK,完成导入。
        题外话:
        当然,另一个笨办法是,在Step 2 of 3在Text qualifier(文本限定符)栏选择 " ;
        然后在Step 3 of 3一步,将每一列的数据格式一项一项的选择为Text格式。这里有56列,便需在此点击100多次鼠标,且大大增加出错率。
        不推荐这种笨办法。
(G)、这样导入的数据可以确保正确性,不会丢失任何数据。

(4)、导入成功后,可以在Excel中使用上面自动加载宏添加的5个宏程序,对导入的数据进行处理。
        可以通过增加的CSVtool菜单栏和增加的工具栏来运行着5个宏程序。

Function SaveSheetToCsvAddDQuotesOK()
    'Save Sheet To Csv Add Double Quotes OK
    '该宏程序是将已经使用Excel处理好的当前表单的数据导出为csv文件,
    '导出时将每个字段都是用双引号 " 括起来,可以直接用于Nokia PC Suite导回到E73。
    '导出完成会提示文件存放位置。
    '导出文件名为当“前活动工作表名-AddDoubleQuotes.csv”,比如Sheet1-AddDoubleQuotes.csv
    '存放目录是,若当前活动XLS文件没有保存Len(ActiveWorkbook.Path) = 0,则将文件存放在D:,
    '若当前活动XLS文件已经保存,便存放在XLS文件所在目录下面
    '注意导出前,如果原来有同名文件需要进行备份。宏程序会自动覆盖,不会提示。
    '如果数据较大如1000个联系人,需要等待1-3分钟,处理完会有提示。
    '该宏程序,适用于将已经处理好的xls文件保存为类似Sheet1-AddDoubleQuotes.csv的数据文件,以用于Nokia PC Suite导回到E73。

Function SaveSheetToCsvAddSDQuotesOK()
    'Save Sheet To Csv Add Single and Double Quotes OK
    '该宏程序是将已经使用Excel处理好的数据进行导出为csv文件,
    '导出时在每个字段前加上单引号 ' ,让Excel将每个字段都当做文本字符来处理。并且将每个字段都是用双引号 " 括起来。
    '这样导出的 csv 文件,可双击让Excel打开,Excel将自动将每个字段当做文本字符处理,不会丢失数据,可直接另存为xls文件进行保存和处理。
    '导出完成会提示文件存放位置。
    '这样导出的 csv 文件,可以直接另存为xls文件进行保存和处理。
    '导出文件名为当“前活动工作表名-AddS&DoubleQuotes.csv”,比如Sheet1-AddS&DoubleQuotes.csv
    '存放目录是,若当前活动XLS文件没有保存Len(ActiveWorkbook.Path) = 0,则将文件存放在D:,
    '若当前活动XLS文件已经保存,便存放在XLS文件所在目录下面
    '注意导出前,如果原来有同名文件需要进行备份。宏程序会自动覆盖,不会提示。
    '如果数据较大如1000个联系人,需要等待1-3分钟,处理完会有提示。
    '该宏程序,适用于将已经处理好的xls文件保存为类似Sheet1-AddS&DoubleQuotes.csv的数据文件,以供保存和后续处理。

Function AddSingleQuotesAndDelDQuotesOK()
    'Add Single Quotes and Delete Double Quotes OK
    '该宏程序是对导入的数据进行初始处理,
    '如果每个字段的前后有双引号 " 就将其删除,并立即在每个字段前加上单引号 ' 。让Excel将每个字段都当做文本字符来处理。
    '如果数据较大如1000个联系人,需要等待1-3分钟,处理完会有提示。
    '该宏程序,适用于处理刚从Nokia PC Suite导出的MyCsv.csv的数据文件,处理类似Sheet1-AddDoubleQuotes.csv的数据文件。

Function xlsRefreshSheelOnlyOK()
    '注意:该宏程序适合用于刷新xls格式文件,会在每个单元格前面加上 '。不适合用于刷新CSV格式的文件,否则其每个单元格前面会多出一个 ' 。
    '刷新当前工作表,并且会在每个单元格前面加上 ' ,以让Excel将每个单元格都当做文本字符来处理。其他不做处理,用于规范显示。
    '处理之后方式所有单元格都不再显示最前面的单引号 ';其中存放数字的单元格将显示为字符数字,这种单元格左上角出现纠错小三角。
    '这样整个工作表的格式和显示将更为规范和整洁,便于以后的进一步处理。
    '如果数据较大如1000个联系人,需要等待1-3分钟,处理完会有提示。

Function csvRefreshSheelOnlyOK()
    '注意:该宏程序适合用于刷新csv格式的文件。不适合用于刷新xls格式文件,不然每个单元格前面的 ' 会丢失。
    '当前工作表,对内容不做处理,只是规范显示。
    '处理之后方式所有单元格都不再显示最前面的单引号 ';其中存放数字的单元格将显示为字符数字,这种单元格左上角出现纠错小三角。
    '这样整个工作表的格式和显示将更为规范和整洁,便于以后的进一步处理。
    '如果数据较大如1000个联系人,需要等待1-3分钟,处理完会有提示。

(5)、以上方法和步骤,都已经经过验证。
        将从Nokia PC Suite导出的MyCsv.csv按上面方法导入Excel,保存为Book1.xls;
        然后,在Book1.xls中,直接调用Sub SaveSheetAddDQuotesCommaExportOK(),将自动保存为Sheet1-AddDoubleQuotes.csv;
        比较原始数据MyCsv.csv和导出的Sheet1-AddDoubleQuotes.csv,比较结果完全一样。

cbao123 发表于 2012-3-7 09:38:09

新思维!新发展!

alice148 发表于 2012-3-22 15:05:45

下载看看{:face (84):}

alice148 发表于 2012-3-22 15:06:03

下载看看{:face (411):}

tianji028 发表于 2017-1-11 15:12:52

nokia又要复活了。。
页: [1]
查看完整版本: 处理Nokia导出的CSV格式联系人的宏程序