普通视图

发现新文章,点击刷新页面。
昨天以前首页

自动生成Excel索引

作者 xrspook
2025年5月30日 08:22

当年今日

我要对一堆的本地eml文件做一个索引,应该用什么方式表达呢?一开始我想到的是做一个html的网页。上面需要表达的信息包括:分类、时间、附件个数、发件人、邮件主题以及文件路径。文件路径应该是一个超链接,我点击这个网页的超链接,就能到达那个文件,可能是直接打开文件。有没有一种方式是打开资源管理器直接锚定到那个文件但不打开呢?一开始我是这么设想的,但后来网友告知,在浏览器层面没办法打开这些文件,因为安全性的原因,浏览器没有打开文件的权限。如果那是一个txt文件,那么你可以直接在浏览器里打开,如果是一个图片,也能打开,但是如果那是一些其它后缀的文件,理论上是打不开的,哪怕你在浏览器里以资源管理器索引的方式打开了文件夹的目录,当你点击某个后缀文件的时候,会弹出一个窗口让你下载。一整个下午我就在这里兜圈子,总感觉是不是有一种方式能够让浏览器弹出资源管理器锚定到那个文件,哪怕不打开文件本身。我一开始天真地觉得,在浏览器里面点超链接就能直接打开eml文件,因为那个后缀的文件我已经设定了默认打开方式是雷鸟。事实证明,我只是一个下午都在白费力气而已。

普通a开头的超链接是无法打开eml文件的,我想到了Excel里面的超链接。Excel的超链接可以直接链接到某个文件。它跟浏览器不一样。不会在Excel里面打开那些东西,哪怕那些个txt或者一个图片,会直接打开文件。所以我就尝试在Excel里给eml文件做一个超链接,结果发现。当我点击那个超链接的时候,会弹出一个窗口,告诉我这么干不安全,但是我依然可以选择是继续打开那个文件,之后雷鸟就会启动,那个eml文件就被打开了。所以简单来说,实际上在Excel里面是直接可以打开eml文件的,不过打开的时候会有一个令人烦恼的弹窗,可能在某些地方进行设置,可以把那个安全提醒的弹窗去掉,但我觉得没有必要。如果你不想被那个弹窗烦恼,你可以右键那个单元格的链接地址,直接贴到任何一个资源管理器地址栏,回车就打开了。操作是有点烦,但起码不会像浏览器那样,打不开或者非让你下载不可。

折腾了一个下午之后,我发现原来我的目标居然是把那个邮件索引做在Excel文件里。Excel的版本可以做的,和之前的功能没有区别,更强大的地方在于如果是在Excel文件里,排序很方便,搜索也很方便。

接下来我没有做更多浪费时间的事情,直接去把这个问题丢给Deepseek,问它如何用Python的方式把批量的 eml文件信息输出到Excel。第1次给我的那个版本只能针对某个路径,但如果那个路径里面还有子文件夹会被忽略,所以后来我增加提问,所以Deepseek又给了我递归那个路径下所有文件夹的版本。默认的回答没有附件个数,所以最后我要加多了要计算每个邮件附件个数的功能。

事实证明Deepseek真的是一个好东西,因为它第1个版本的代码已经能输出大概差不多那种东西,但是不能完全符合我的要求,因为它认为重要的信息和我需要的信息以及排序始终有区别。把pandas里面的数据输出到Excel有好几种方式,但是有些输出方式出来的那个Excel文件我个人感觉很丑,所以我又花了半个下午的时间改成了以xlwings输出,这个东西比其它输出在格式调整方面有更大的调控空间,比如自适配行高和列宽。在其它引擎里可能需要一大段的代码,但是在xlwings里面就只需要一句autofit。之所以知道这个,是因为之前在学Python提高Excel工作效率的书里我已经接触过这个东西。

Deepseek的代码能解决核心问题,但细节调整还是得靠自己。从第1次叫Deepseek写代码到我最终得到我想要的那个Excel索引,花了不到24小时。

❌
❌