此 Blog 已经迁移到 http://janlay.com,并停止更新。
This blog was moved to http://janlay.com and stopped updating.

2006-5-5 23:3Zoom全屏Outlook 日历数据导入 Google Calendar 案例详述

我的 Nokia6600 从 2005 年开始便使用它的日历功能记事,便终于录入不便,以及共享比较困难,决定转到 Google calendar 上去,导入这些数据因此成为一件必须要解决的事情。

首先,当然是通过 Nokia PC Suite for 6600 导入日历到 Outlook. 我首先在一台装有 Outlook 2003 的系统中尝试向 Google Calendar(以下简称 GC) 导入。

按照 GC Help 提示,需要将 Outlook 日历数据导出为CSV格式文件(Windows),并且如果数据跨年的话,分一年一年分次导出。

导出 CSV 顺利完成,但导入时 GC 提示 Failed to parse, 表明 GC 无法解析上传的。进一步查看 Help 文档时发现,GC 目前还不支持非英语的 Outlook 导出数据。

那就来看看导出的 CSV 文件结构,发现它的第一行类似于 Column Header, 且是中文字段名,从 GC Help 提示来看,这个肯定是无法识别的。解决办法相当容易。换一台装有英文版 Outlook 2003 的系统,随便录入一条日历数据,然后导出日历数据。OK, 现在得到解到了英文版 Outlook CSV 文件的 Column Header, 如下:
"Subject","Start Date","Start Time","End Date","End Time","All day event","Reminder on/off","Reminder Date","Reminder Time","Meeting Organizer","Required Attendees","Optional Attendees","Meeting Resources","Billing Information","Categories","Description","Location","Mileage","Priority","Private","Sensitivity","Show time as"

显然,CSV数据中的"私有"可能无法被 GC 解析,全部替换成 "Private" 即可;同样,","中""也要替换为","3""。

替换完成后,再次尝试向 GC 导入数据,得到提示为Failed to upload, 猜想解析可能通过,但 GC 认为 CSV 数据有问题。仔细比较中英文版 Outlook 2003 导出的 CSV 文件,发现英文版数据项的日期格式是MM/DD/YYYY,而中文版是YYYY-MM-DD, 另外,时间上,英文版使用 12 小时制,而中文版使用 24 小时制。显然,Outlook 按照相应的区域标准设置来输出日期和时间。

既然这样,尝试转换一下日期时间,看能否通过 GC 的检查。要把 YYYY-MM-DD 格式转换为 MM/DD/YYYY, 用支持正则表达式替换的编辑器应该可以完成。我使用的是 EditPlus, 打开这个 CSV 文件后,按 Ctrl+H, 打开 Replace 对话框,查找:
(200[56])-([0-9]+)-([0-9]+)
替换为:
\2/\3/\1
当然,Regular expression 复选框要选上。

点击 Replace All 后,文件里面的日期格式被瞬间转换完成。暂且不转换时间格式,再次尝试向 GC 导入数据,OMG, 导入成功了!但是……,返回日历,发现导入的数据中文字符全部显示为方框,汗,幸好我把它导入到一个独立的 Calendar 中去了,否则删除起来要累死。

Delete 那个 Calendar 后,再创建一个。然后将 CSV 文件另存为,Encoding 选项改为 UTF-8, 再次尝试导入,嗯,这回正常了。如法炮制,另一年的数据也如此这般处理一下,导入完成。

虽然成功导入了数据,但还是要批评一下 GC, 它居然忽略了"地点" 项的数据,导入后发现 "Where" 丢失。
作者:Author:janlay 分类:Category:Techniques 回复Comments: 引用Trackback: 阅读:Read

回复Comments

{commenttime}{commentauthor}

{CommentUrl}
{commentcontent}