栖息谷-管理人的网上家园

[推荐]电话本姓名完美转拼音缩写Excel程序

[复制链接] 2
回复
3756
查看
打印 上一主题 下一主题
楼主
跳转到指定楼层
分享到:
发表于 2008-1-10 23:49:51 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

我习惯用outlook来管理通讯录,并通过导入功能将EXcel版的通讯录全部导入outlook中,在我的outlook中有1484个联系人的信息,我还将这些联系人信息同步到智能手机中。这么多的联系人,查找是非常麻烦的事。前两天,从网络上查找到电话本姓名完美转拼音缩写的Excel程序,经过操作,已经成功地将1484个联系人姓名全部转拼音缩写。现在,无论在outlook中还是在智能手机中查找联系人都非常地方便,推荐大家使用,具体程序见最下面的附件,(将扩展名改为RAR即可)

有一位网友写了详细的过程,现分享如下(过程有些复杂,请仔细看):

下面我就将我自己的Outlook电话本转成带拼音首字母的过程作一个简单的介绍,重点讲一下处理过程中的注意事项。

前提:

1、你熟悉Outlook联系人方面的有关操作,能够熟练的将Outlook电话本与智能手机进行同步,不熟悉的看有关教程。

2、由于要用Excel来处理电话本,不可避免的会出现电话号码变成数字的科学计数法表示以及丢失区号前面的0等现象,因此,在用Excel打开导出的电话本之前,一定要对电话号码进行简单的处理,防止电话号码变成数字。推荐的处理方法(银行帐号等数字格式的文本也遵循这个原则):

1)将电话号码中加上-这样的英文符号,如12345678变成1234-5678。

2) 对于带区号的电话号码,如01012345678可以写成这种形式:(010)1234-5678。

3) 对于+8613911112222这种带国家号的电话号码最好变成(+86)139-1111-2222这种格式。

最简单的处理办法就是在导出CSV文件之后,用UltraEdit(简称UE,一款编辑软件,可以到网络中查找)的正则表达式将所有的数字前面加上几个#号,这样号码就不会被Excel处理成数字了,然后被Excel处理完成后,再使用UE,将所有的#号替换为无。

UE正则表达式替换的使用方法:

首先,设置UE使用Unix形式的正则表达式(在高级->配置->查找中设置),我使用的是UE 10.10c。

查找:"([+0-9])([0-9]*)"

替换为:"###\1\2"

注意,上面的符号均为半角,对于直接阅读本文件的人来说“”和“”是论坛里用于加粗的代码,不在查找替换范围之内。

待用Excel处理完导出文件(加上拼音简写之后),再用UE将所有的###替换为空即可(不需要再使用正则表达式了,这也是为什么使用三个#号的原因)。


 

特别注意:无论下面的处理过程如何,务必备份好你的原始Outlook个人文件夹文件。备份方法很简单,关闭Outlook,然后复制一份对应的.pst文件到另一个地方就行了。

Outlook电话本到Excel再转回Outlook的大致步骤如下:

1、首先,将Outlook的电话本导出成用“,”(半角逗号)分隔的CSV文件。我用的是Outlook 2000,也就是Office 2000中自带的Outlook。打开Outlook,选择“联系人”,然后从Outlook的菜单依次“文件 -> 导入和导出 -> 导出到一个文件 -> 以逗号为分隔符(Windows) -> 选择导出文件 -> 映射自定义字段”,到这里需要注意:

1) Outlook默认的字段映射中,姓名这一部分是很复杂的,分为“英文称谓、名、中间名、姓、中文称谓”五个字段,其中的名对应智能手机上的名字,姓对应智能手机上的姓氏。如果导出这一部分,取决于你想把电话本处理成什么形式,也别指望这个过程可以一步到位。

有的人在Outlook中输入联系人时是按照姓、名分别输入成两个字段的,有人干脆就是将姓名全部输入到“姓”或者“名”一个字段中,还有的在“姓”字段中对联系人进行分类,将联系人的名字输入到“名”字段中(一般中国人没有习惯使用中间名这东西),例如:“同事,张三”,“同事,李四”,“同学,王五”等等。

再一个就是生成的拼音简写放到什么位置的问题,我提供的这个Excel程序支持两种生成方式:一种是与姓名合并成一列的,例如“张三zs”,“李四ls”,另一种是单列存放的,也就是“张三”和对应的“zs”分别各占一列。

我的实践是将生成的拼音简写放到姓名的前边,见下图。

 

2) 我个人推荐的方式:无论你原来是如何填写姓名的,将姓名合并成一个字段,也就是要么将所有汉字放到“姓”中,要么将所有的汉字放到“名”中,而另一个空出来的字段单独存放对应汉字的拼音缩写。

这样的优点是显而易见的,最主要的是易于维护,现在大部分的手机电话本都与Outlook兼容,姓、名这两个字段也没有明显的长度限制。

怎么将原来分开的姓、名两个字段合并成一个“姓名”字段呢?很简单,在Outlook导出过程中上面的字段映射部分,Outlook会自动将前面的“英文称谓、名、中间名、姓、中文称谓”五个字段合并出一个“姓名”字段,加入这个字段(从左拖到右),你的导出表中就多出了这个合并后的“姓名”字段,然后在Excel中将它复制、粘贴到“姓”或者“名”字段中就很简单了。

总之,既然outlook提供了字段映射功能,你自己该怎么处理自己的电话本就由自己决定了。我的处理过程是导出了两次,第一次导出合并的姓名字段,第二次按默认的字段映射导出,然后将第一次导出的“姓名”替换掉第二次导出的“姓”字段(在Excel中操作),而将生成的拼音简写替换掉“名”字段。

2、对导出的CSV文件使用UE进行前面所述的替换处理,防止文本变数字。

3、用Excel文件直接打开CSV文件,同时打开上面下载的压缩包中提供的“姓名添加拼音缩写xyf.xls”Excel转换程序,由于这个Excel转换程序使用了宏,因此,你要将Excel的宏安全性设置为“中”及以下级别,在打开时选择“启用宏”。然后将CSV文件中的“姓名”字段(也就是需要加拼音缩写的汉字部分,可以带有英文及其它符号,程序会只处理汉字)复制、粘贴到Excel转换程序的Sheet1的A列中。

4、单击转换程序“Sheet1”中的“开始编辑”按钮,首先提示你将生成的拼音缩写放到什么位置,按自己的需要选择,我建议是单独成列,然后开始转换过程,转换过程中会提示多音字,按需要选择即可(程序会自动统计多音字中某个字的首字母的出现数量并记录到sheet2中,按数量多少优先选择多的那个,还是比较智能的),直到转换完成,程序会自动显示转换开始时间及完成时间。

5、用Excel将转换后的字段再复制、粘贴回CSV文件的对应字段,检查有无问题,确认没有问题后,保存CSV文件(这个保存过程会导致CSV导出文件中的所有双引号丢失,不过不影响导入Outlook)。

6、用UE再次对上面转换后的CSV文件进行处理,主要是去掉前面在数字字段加上的#号字符。

7、在Outlook中新建一个联系人文件夹(或者删除原来联系人文件夹中的所有记录),然后执行CSV文件的导入,查看导入后的记录是否正常,如果有不满意的地方,重复前面的步骤,直到满意为止。

8、将转换完成的Outlook电话本与智能手机进行同步,在智能手机上检测拼音缩写的使用是否方便,一个字儿:爽极了!我的Cu928用拼音缩写查找1484个联系人,基本上不会有停顿现象。

如果对转换程序有什么不满意的地方,可以自己修改宏程序,例如:联系人的姓一般比较特殊,不会出现多音字的现象,针对联系人的第一个汉字(一般是姓)可以用程序特殊处理,不用选择多音字。例如:解x,贾j,查z,单s等。可以参考下载压缩包中的“姓名添加拼音缩写姓氏单独处理不完善版.xls”文件,对sheet4中的姓氏读音进行特别处理,由于数据量太大,只修正了少数的错误,将这个表中不该发音的姓氏读音去掉即可,例如去掉“解j、贾g、查c”等行,对百家姓了解不多,很多姓都不知道念什么:(。




[此贴子已经被作者于2008-1-10 23:54:59编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入

x
poe
板凳
发表于 2008-1-11 17:10:49 | 只看该作者

收到,谢谢lz的经验分享阿!

poe
沙发
发表于 2008-1-11 17:10:27 | 只看该作者

收到,谢谢lz的经验分享阿!

使用高级回帖 (可批量传图、插入视频等)快速回复

您需要登录后才可以回帖 登录 | 加入

本版积分规则   Ctrl + Enter 快速发布  

发帖时请遵守我国法律,网站会将有关你发帖内容、时间以及发帖IP地址等记录保留,只要接到合法请求,即会将信息提供给有关政府机构。
快速回复 返回顶部 返回列表