|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 1024kb 于 2019-3-12 08:23 编辑
由于需要梳理几万封电子邮件,就想将其导出到excel,可能是个小众需求,没有现成的完美解决办法。通过“文件-打开和导出-导入/导出-导出到文件-逗号分隔值”可以将邮件导成.csv文件,但是不包含日期信息,真是莫名其妙,好多无关紧要的字段都包括进去了,唯独没有日期,而且不能添加字段。后来看到有人介绍在Outlook收件箱的邮件清单界面全选-复制,粘贴到excel中可以直接获取邮件信息,默认设置也是仅有几个字段,不过可以在“视图-视图设置-列”中自定义,可以选择所需要的字段并设置顺序。但存在一个问题,正文无法再单元格中换行,邮件正文如果有换行,粘贴到excel中之后,从第二行开始会被放在第一列,第一列就会既包含原有字段内容也包含正文内容。正文后面的字段又会在最后一行第二列接着列示。而且抄送、密送字段如果有多个收件人,会被分列,依次往后排(收件人自动却不会,即便有多个收件人也会列在一个单元格内)。这几种情况会导致内容排列杂乱无章。解决办法是将唯一的字段放在前面,比如发件人、日期、大小,由于“大小”字段有明显的特征(简单,并且均为“B”结尾),可以用作确定一封邮件的标志。其他行的内容可以在“正文”字段用CONCAT公式直接从第前几列获取。给每封邮件编号,将归属于同一封的邮件正文用迭代的方法在第一行汇总起来,可以在中间插入一个指定的标志作为换行标记。再将各封邮件的第一行复制另存,把刚才指定的换行标记全部替换成手动换行符(Alt+依次按数字小键盘的1和0),即可将邮件正文以比较方便阅读的方式展现出来。貌似这种方法提取的正文字数有限制(256字符?),正常工作邮件到也可以应付,但是有些多次转发的就有点吃力,可以导出一个完整的csv文件做备查。
补充内容 (2019-3-23 15:50):
折腾了半天,发现Access可以读取outlook文件夹,但是貌似只支持IMAP和Exchange账户,POP账户提示Access找不到向导,悲催的是最初就是拿邮件比较少的POP邮箱测试的,幸运的是我需要处理的是IMAP邮箱。 |
|