PDF 转 Excel 失败,它给的理由是:这页没画线
- 2026-11-07 00:24:10
前些天我在 GitHub 上翻到一个叫 Filee 的工具,两万星,说是能转 260 多种格式,全程离线,不用装 Office。十月下旬中文圈一下子冒出来好几篇夸它的文章,说按住 Ctrl 把文件拖到光标处的圆环上就转完了。
我把它下下来,没开界面,直接用它自带的命令行跑了十二件事。成了十一件。这篇文章说的是没成的那一件,以及成了的那些里面,有哪几件其实不算真的成了。
01 先说结果:十二件,成十一件
测试用的东西是我自己造的:一张报销单截图、一份 Markdown 笔记、一份 CSV 明细、一段三秒的视频、两份内容一模一样但排版不同的 PDF。
它跑起来是这样的:
filee convert 截图.png --to pdf -o out1 filee convert 笔记.md --to docx -o out2 filee convert *.csv --to xlsx -o out3
界面我没开,理由很实际:我这种活要重复跑,这个月的截图转一次,下个月还有一批,写进脚本比每次手动拖十二遍省事。它提供了命令行,这一点比很多同类工具强。

十二项转换的源文件和产物,我一个都没删
这张表里的数字比「成没成」更有意思。视频转 GIF,四十八 KB 变成二百七十九 KB,大了将近六倍。道理不难懂:GIF 是八十年代定下来的格式,它不认画面里哪块没变过,每一帧都从头存一遍。而原来的 MP4 会告诉你「这三十帧里背景一点没动」,所以省得下来。
反过来,带框线的表格转 Excel,三十一 KB 掉到二点七 KB,少了九成。省下来的地方在这里:PDF 里那些字体、间距、排版指令它一概不要,只留下「第几行第几列是什么」,剩下的就是纯数据。
02 失败的那一件,差的是几根线
我做了两份 PDF,内容完全一样:一张四行四列的报销明细表,姓名、部门、金额、日期。唯一的区别是,一份给表格画了边框线,另一份只在版面上留白对齐。
带线的那份转成 Excel,成功。我拆开转出来的表格文件看,金额那一栏是真正的数字,不是文本,选中能直接求和。日期那栏在文件里存的是「46303」这么一个数字,换算过来正是二〇二六年十月八日——这说明它是真日期,不是一句「2026-10-08」的文本。
不带线的那份,直接失败,一页都没转出来。它给的理由是这么一句话:
This PDF has no tables drawn with lines, so there is nothing to put in a spreadsheet. A scanned PDF has no text at all.
那句话翻过来就是:这页上没有画出线的表格,所以没东西能放进表格里。
这一句把它的原理说穿了。它不是在「认出」这是张表,它是在页面里找画出来的横线和竖线,找到线的交叉,才认为那是一格。没有线,哪怕文字排得再整齐,它看到的就是一堆散字,宁可报错也不瞎猜。
这设计保守,但保守有好处。凡是靠猜来切的——按列的位置切、按空格切——出来的东西看着像一份表,真拿去算数了才会发现格子是错位的。所以看到这个报错,先回去确认你的 PDF 是不是真的没画线;确实没画,那就别指望任何工具给你一份能拿去算数的表,顶多给你一份看着像的。

同一张表,只差有没有边框线
03 成了的里面,有一个是假的
PDF 转 PowerPoint 那一项,命令行报的是成功,文件也生成了,打开看着和原 PDF 一模一样,一个字都没歪。
我不太信,把那个 pptx 当压缩包拆开看。有内容的只有两样:一张 40 KB 的图片,和一段 942 字节的幻灯片代码。942 字节里干的唯一一件事,就是把这整页图片贴在幻灯片上。
所以它不是「转成了 PPT」,是「把 PDF 的每一页截图,一张一张放进了 PPT 页面里」。你要改一个错别字,改不了,因为没有字,只有图。

拆开 pptx 看到的东西
这一点它自己的文档里写得很清楚,说 PDF 转 PPT 是「每页一张图,不能编辑,想改字请走 PDF 转 Word」。只是这句藏在文档深处,而你要在界面上按一次拖拽,是看不到的。
顺带说一句,PDF 转 Word 那一项我原本以为也会崩。GitHub 上十一月二号凌晨有个 issue,样本是一张从电子表格打印出来的服装测量表,每个格子都画了框线,转成 Word 却给出 63 个散段,一张表都没认出来。
它自己的分析写得挺细:有个词比列宽长,PDF 里只是裁在格子外面,可文字读取器照样读到了完整的一个词,这个词就横跨在右边的竖线上。而它的表格识别器把「穿过文字的竖线」当成图表或删除线的信号,于是一整张表被降级成文字。改法是让跨过竖线的词留在起始格,放行比例是二十分之一的词。
我实测的结果是好的:转出来的 Word 里有一个真正的表格,中文一个字没错,日期还是「2026-10-08」原文而不是一串数字。我这张只有四行四列,没有哪个词会跑到格子外面,碰不到它那个毛病。拿我的结果去反推「这功能已经没问题了」,我没这个底气。
04 二百多种格式,是这么凑出来的
我让它把支持的全部格式打印出来,数了一遍:二百六十八条。仓库简介写 263,官网首页写 255,我翻到的几篇中文介绍文里有写「180 多种」的,也有写「两百多」的。都不算撒谎,算不算「变体格式」全凭各自怎么数。
更有意思的是里面的标记。这 268 条里,有 92 条后面写着「只能读」。意思是这类文件它能打开、能转成别的,但转不成它。比如医学影像的 DICOM、老照片光盘的 Photo CD。剩下 176 条才是可以当输出目标的。
更值得看的是另一件事:这 268 条路的背后,是三十来块部件拼在同一个界面后面——处理 PDF 的、处理图片的、处理压缩包的、处理韩文文档的,各管一段。有的直接打包在里面,有的要你自己另外下。
查清单时每个格式都分两栏:一栏现在就能转,另一栏标着「装了可选引擎之后才能转」,老版 Word、扫描件识别、冷门电子书都在后一栏。那些引擎小的二十兆,最大的是处理老 Office 格式的整套环境,四百多兆,装完占一个多 G。

268 条里有 92 条只能读
05 所以这工具该怎么用
我平时真的在用它干一件事:压配图。做这篇的时候我把手上六张 JPG 扔给它批量转了一遍,质量 82,四百六十二 KB 变成二百五十 KB,省了 46%。转出来的 WebP 我留在文件夹里,你在这篇文章里看到的仍然是 JPG——传图这一步我没换格式。
判断标准就一条:转完的东西,你是要拿它继续干活,还是只是看一眼。
只是看一眼的——图片换格式、几页扫描件合成一个 PDF、把几十兆的 PDF 压小发给对方、PPT 转成 PDF 防止对方改——闭着眼用。错了你一眼就能发现,重来一次也就十秒钟。
要接着干活的——PDF 转 Excel 拿去算钱、PDF 转 Word 拿去改、扫描件认字提出来——转完必须开出来看一眼。重点看两处:数字是不是数字,日期是不是日期。它最擅长的就是让结果看起来漂亮,而「看起来对」和「能拿来算」是两回事。

按这张表分一下,能省掉大部分返工
这个工具值得装。它不用注册、不收钱,一遍跑下来全在我自己机器上,还能写进脚本。但「支持 260 多种格式」这句话,说的是一共有多少条路,不是每条路都通到你能用的地方。你手上那个 PDF 能转成什么,取决于它当初是怎么被画出来的——这件事,任何工具都替不了你判断。
06 想自己用,这几条命令够用
去 GitHub 搜 Filee。Windows 下有安装包,也有免安装的压缩包。它的命令行网上几乎没人写,我把自己在用的几条放在这里,照着改文件名就能跑。
一条模板:
filee convert 要转的文件 --to 目标格式 -o 输出目录
我常用的四条:
filee convert 图.png --to webp -q 82 -o out filee convert 表.pdf --to xlsx -o out filee convert 表.pdf --to docx -o out filee formats
第一条压配图,我这篇的图就是它转的。质量参数我按三档各存了一遍同一张图:75 出五十三 KB,82 出六十六 KB,90 出八十九 KB。我固定用 82,这篇的图总共省了四成多。你要是还想更小,往 75 那边走,能不能接受得自己拿一张看。第二条转 Excel,只对画了框线的表有效,没框线它会直接拒绝,别反复试。第三条转 Word,要改字用这条,别用转 PPT 那条。最后一条是列清单,不知道手上的格式能不能转,先问它。
还有三个地方会绊你一下。
一是程序名。便携包里真正的命令行程序叫 filee-cli.exe,另带一个 cli 文件夹,里面的 filee.cmd 会转发过去。把 cli 文件夹加进系统路径就能直接敲 filee convert,否则每次得写 .\filee-cli.exe。单独把 exe 拎出来放别处,filee.cmd 就不管用了,得自己改名。安装版我没试过,不好替它保证。
二是路径。-o 后面那个输出目录是相对当前所在目录算的,不是相对源文件。文件名也一样,只写「截图.png」的前提是你已经在这个文件旁边。没把握就两边都写全路径。
三是重名。同名文件已经存在时它默认不覆盖,而是加个序号另存一份,所以你在同一个目录里反复试是安全的。真要覆盖,得显式加 --overwrite。
它还有个 --json 参数,把结果按机器能读的格式打出来。我要批量跑完回头核对的时候就用它,哪一项失败、失败原因是什么,一眼能看到。