Excel转Markdown,公式结果还在吗?
记号笔要备 12 支,手上还有 8 支,补货表里该填 4。用 MarkItDown 把这张 Excel 表转成 Markdown 后,我在那一格看到的却是 NaN。同样一条公式,换一份文件再转,结果又成了 4。区别不在公式写法,在于文件里有没有存下算好的数。
MarkItDown 能做什么
MarkItDown 是微软开源的文件转换工具。它能把 Excel、Word、PPT 等文件里的文字和表格提取成 Markdown。比如一份有多个工作表的库存表,转完就可以把需要的表复制到笔记里,不必逐行整理。它是命令行工具,没有要点开的转换窗口。这次只测本地的 .xlsx,不用登录,也不用填 API 密钥。
Windows 上怎么装、怎么转
先准备 Python 3.10 到 3.14,我用的是 3.12。把要转的文件放进一个单独的文件夹,在该文件夹打开 PowerShell。下面第一行建一个独立环境,第二行只安装读取 .xlsx 所需的组件,第三行确认版本。
python -m venv .venv ./.venv/Scripts/python.exe -m pip install "markitdown[xlsx]==0.1.9" ./.venv/Scripts/python.exe -m markitdown --version
想跟着试,可以新建一个 inventory.xlsx。第一张表叫「库存」,列名是物品、数量、单位,填上记号笔/8/支、标签纸/3/包。第二张叫「补货」,A 到 D 列依次是物品、目标库存、现有库存、需补数量。第 2 行填记号笔、12、8,D2 输入 =B2-C2;第 3 行填标签纸、5、3、2,最后的 2 直接输入。算完保存,再运行这条命令:
./.venv/Scripts/python.exe -X utf8 -m markitdown inventory.xlsx -o inventory.md
-o 后面是输出文件名。在同一文件夹用记事本打开生成的文件,就能看见 Markdown 源码。文件名带空格时,把对应的名字用英文双引号括起来。要保留上一次的结果,换一个输出名再转。
实测:同一条公式,为什么一份是 NaN、一份是 4?
下面是样表的「补货」页。选中 D2,公式栏显示 =B2-C2,格子里显示 4。标签纸那一行的 2 则是直接填进去的数字。
Excel 补货表的 D2 公式和数值为了单独看保存结果有没有影响,我用脚本做了两份表。第一份只写入公式,不存计算结果;第二份保留同一条公式,只在文件里补上它的结果 4。两份都用 MarkItDown 0.1.9 转换。
第一份里,「库存」和「补货」都成了 Markdown 小标题,物品名、数量和单位也都在。只有记号笔的补货数量成了 NaN,意思是这里没读到数字,不能当成 0。标签纸那格显示 2.0,数值还是 2。
未保存公式结果时,实际 Markdown 显示 NaN第二份里,同一个位置变成 4,标签纸显示 2。导出的文件里没有 =B2-C2,只有数字。这个对照测到的是 MarkItDown 读取了文件里已经保存的结果,4 不是转换时算出来的。平时直接用 Excel 做好表再保存,通常不用自己处理这个缓存。
保存了公式结果时,实际 Markdown 显示 4哪些表值得转?
库存清单、设备列表这类表,想摘到笔记里,转出来的文本就够用了。像这张样表的表头底色、冻结首行,转完都不在;如果还要继续填表、改公式,原来的 Excel 文件得留着。
有公式的表,我会先在表格软件里重新计算,再另存一份拿去转。转换后对照几格,优先看合计、差额和引用其他表的列。看到 NaN 就回原表查;看到了数字也要核一眼,因为文件里保存的可能是旧结果。平时只偶尔转一张小表,直接复制就行;要经常把多张表整理成文字,MarkItDown 才更省事。
项目地址:微软 MarkItDown 开源仓库 · 本次实测版本 0.1.9
作者提示含AI生成内容。作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
