但有一个问题:你怎么知道它真的读完了全部资料?
我们做了一组真实转换实验。在三份模拟资料里预先放入 10 个可核对的信息点,其中 9 个顺利进入 Markdown,唯独 PDF 第 4 页图片里的“周末夜间平均等待 14.2 分钟”没有被本地基础转换读出来。
AI 能继续回答,不等于文件已经读全。它只说明:当前看到的内容,已经足够让它组织出一个听起来完整的答案。
这篇文章解决的就是这个问题:在把 PDF、PPT、Excel 交给 AI 前,怎样先用 MarkItDown 把资料变成可检查的文本,并判断哪些内容能用、哪些内容仍然缺失。
MarkItDown 是什么?它不是另一个聊天机器人
MarkItDown 是微软开源的一款 Python 工具。它可以把 PDF、PowerPoint、Word、Excel、图片、音频、HTML 等内容转换成 Markdown,尽量保留标题、列表、表格、链接等对文本分析有用的结构。
你可以把 Markdown 理解成一张“资料 X 光片”。原来的文件有版式、有颜色、有图片,AI 到底从里面拿到了什么并不透明;转换以后,标题还在不在、表格剩几行、第二个工作表有没有出现、脚注有没有丢,一眼就能检查。
它最值得学的地方,不是“又多支持几种文件”,而是把原来不可见的资料读取过程,变成一个能核对、能补救的中间环节。
截至 2026 年 8 月 1 日,MarkItDown 的最新版本是 0.1.7,发布于 2026 年 7 月 29 日。这一版修复了 PPTX 图表转换中的低效值查找,并改进了没有栅格回退图的 PPTX SVG 图片处理;前一版 0.1.6 还加入了可选 OCR 层服务、PDF 内存修复和 Azure Content Understanding 转换器。换句话说,它正在持续补强复杂 Office 文档和图片内容的处理能力,但这仍不等于“任何文件都能自动读全”。
官方入口:
GitHub:microsoft/markitdown PyPI:markitdown

本地基础使用是开源免费的,不需要登录账号。Python 需要 3.10 或更高版本;
先别问 AI:我们给三份资料埋了 10 个检查点
这次不做功能清单,而是固定一个真实工作任务:运营要根据第二季度客服资料,判断哪个渠道最需要优先处理,并确定下一周动作。
输入共有三份模拟文件:
一份 4 页 PDF,包含核心结果、渠道表格、统计口径,以及一页只有图片文字的排班补充记录; 一份 4 页 PPT,包含渠道对比、退款问题和两项行动; 一份有 2 个工作表的 Excel,包含渠道明细、合计公式和问题清单。
我们事先记录了 10 个检查点:PDF 正文、PDF 表格、口径说明、图片中的 14.2 分钟;PPT 的标题、表格和行动;Excel 的工作表名、32,200 合计值,以及第二张表里的 I-04 任务。
这一步很重要。没有事先写下“我期望读到什么”,转换之后就只能凭感觉看内容像不像完整。
真实资料通常没有现成答案。可以先打开原文件,用下面四类内容建立最小检查点:
文件边界:标题、最后一页、最后一张幻灯片、最后一个工作表是否存在; 表格结构:关键表的表头、首行、末行和异常行是否保留; 决策依据:凡是会改变结论的数字、口径、限制和行动项,都必须逐一检查,不能只抽几个; 图片内容:扫描页、截图页和只有图表没有正文的页面,要单独核对。
检查点不是为了凑一个分数,而是先写清“这次决定不能缺什么”。
第一步:安装并把文件转成 Markdown
官方推荐先使用虚拟环境,避免和电脑里其他 Python 包互相影响。
python --versionpython -m venv .venv
Windows 激活命令:
.\.venv\Scripts\Activate.ps1macOS 或 Linux 激活命令:
source .venv/bin/activate然后安装完整依赖,并确认版本:
pip install ”markitdown[all]”markitdown --version
如果 PowerShell 因执行策略无法激活,不要为这一篇教程去修改整台电脑的安全策略。可以直接调用虚拟环境里的程序:
.\.venv\Scripts\python.exe -m pip install ”markitdown[all]”.\.venv\Scripts\markitdown.exe --version
后面的转换命令同理,把开头的 markitdown 换成 ..venv\Scripts\markitdown.exe 即可。
单个文件可以直接这样转换:
markitdown ”01_第二季度客服运营复盘.pdf” -o ”01_第二季度客服运营复盘.md”markitdown ”02_客服体验改进建议.pptx” -o ”02_客服体验改进建议.md”markitdown ”03_客服渠道明细.xlsx” -o ”03_客服渠道明细.md”
如果你第一次使用命令行,可以按最短路径来:新建一个文件夹,把三份资料放进去;Windows 用户在文件夹地址栏输入 powershell 后回车,macOS 用户在当前文件夹打开终端;运行转换命令;最后用记事本、VS Code 或其他文本编辑器打开 .md,按 Ctrl + F 或 Command + F 搜索检查点。
如果第一步 python --version 就提示找不到命令,需要先从Python 官网安装 Python 3.10 或更高版本。Windows 安装时要勾选把 Python 加入 PATH;安装完成后重新打开终端再检查版本。
下面是这次 0.1.7 本地运行的真实输出。三个文件都转换成功;转换完成后,我们再用预先登记的检查点做关键词比对,10 个信息点只找到 9 个。少量文件可以直接用搜索完成,文件多时可以写一个简单检查脚本。截图里的 [CHECK] 和 [MISS] 来自这次实验脚本,不是 MarkItDown 自动给出的完整性分数。

第二步:不要只看“转换成功”,按五项检查资料完整性
[OK] 只代表程序生成了文件,不代表里面的内容足够支撑你的任务。真正有用的检查顺序是下面五项。

1. 文件数:输入和输出能不能一一对应?
这次有 3 个输入文件,转换后也必须有 3 个 Markdown。少一个,先解决转换失败,不进入下一步。
如果是一个几十份文件的资料包,最好先列文件清单,再批量转换。不要打开几个看起来正常的文件,就默认其他文件也成功了。
2. 结构:标题、幻灯片和工作表还在不在?
PDF 转换后出现了三段可复制正文,但第 4 页只有图片,因此没有形成对应文字;PPT 里能看到第 1 到第 4 页标记;Excel 则保留了“渠道概览”和“问题清单”两个工作表标题。
结构检查能快速发现整页、整张幻灯片或整个工作表是否消失。它比逐字通读更快,也最适合做第一轮筛查。
3. 表格:行列、关键记录和合计值是否还在?
PDF 与 PPT 的渠道表格都保留了“网页、4,200、11.2 分钟、82.5%”这一行;Excel 中也能看到 App、小程序、网页三行数据。
但要注意,表格“看起来像表格”仍然不够。你至少要抽查:
表头有没有错位; 第一行、最后一行和异常行是否存在; 数字与原表单位是否一致; 合并单元格是否产生了 Unnamed、NaN或空列。
这次 Excel 输出就出现了 Unnamed 和 NaN。它们不影响关键数值读取,却说明 Markdown 是给文本分析用的中间材料,不是高保真 Excel 复刻。
4. 关键数字与口径:结论依赖的依据能否被定位?
运营问题最怕“数字还在,定义丢了”。这次 32,200 总工单量、37% 退款工单占比都被读到;“机器人自动回复不计入首次响应”的口径也被保留下来。
Excel 中 32,200 是公式计算结果,MarkItDown 输出里出现了这个值。但是,看到公式结果不等于公式本身正确。如果你的任务依赖复杂公式、隐藏工作表、筛选状态或宏,仍然要回到 Excel 检查计算逻辑。
5. 图片文字:扫描页、截图和图表是不是静悄悄地消失了?
这次唯一漏掉的检查点,就藏在 PDF 的图片里:
周末夜间班次缺口:平均等待 14.2 分钟。
PDF 第 4 页正常存在,肉眼也看得到,但本次未配置额外 OCR 的本地基础转换没有把这句话写进 Markdown。
这正是 MarkItDown 的价值:它没有替我们保证“百分之百读全”,却让缺口在 AI 作答前暴露出来。


这里的 9/10 不是工具准确率。10 个检查点是我们为这组资料预埋的抽查项,只能说明这一次、这三份文件里发生了什么。
第三步:发现漏读后,先补资料,不要让 AI 猜
如果缺的是与任务无关的装饰图,可以记录后继续;如果缺的是关键数字、统计口径或决策条件,就必须先补齐。
处理方式有三种:
对扫描页或图片单独执行 OCR,再把识别结果并回 Markdown; 使用 MarkItDown 可选的 OCR 层、Azure Document Intelligence 或 Content Understanding 等文档解析能力; 文件不多时,人工把关键图片文字补录到一份“缺失信息说明”中。
前两种适合图片页很多、需要批量处理的场景,属于进阶路线;本文先把最容易复现的第三种完整走通。
无论用哪一种,补完以后都要重新走一遍同样的检查点。不能因为换了 OCR 工具,就默认第二次一定正确。

这次只有一个图片信息缺失,所以我们选择最简单的人工补录。先打开原始 PDF 第 4 页,逐字核对后,新建 04_缺失信息补充.md:
# 缺失信息补充- 原始来源:01_第二季度客服运营复盘.pdf 第 4 页图片- 核对方式:人工对照原始 PDF 页面- 补充内容:周末夜间班次缺口:平均等待 14.2 分钟。- 原文行动:建议先补 2 名夜班坐席,再观察一周。
把这份补充文件与前三份 Markdown 放在一起,再按原来的 10 个检查点复查。这一次 10 个点都能定位。
这里仍然不能写成“整份资料 100% 读全”。更准确的说法是:与本次决策有关的 10 个已知检查点都已确认,原来发现的图片缺口也已经补上。
第四步:关键检查点和已知缺口确认后,再让 AI 回答
与任务有关的关键检查点确认后,可以把三份转换 Markdown 与一份补充 Markdown 一起交给 AI,并明确告诉它哪些内容来自基础转换、哪些内容经过人工核对、是否还有已知缺口。支持多文件上传时直接上传四份 .md;如果只能粘贴文字,就在每段前写清文件名并用分隔线隔开。
下面这段提示词可以直接复制:
下面是同一项客服复盘任务的四份 Markdown:三份分别来自 PDF、PPT 和 Excel,另一份是人工对照原 PDF 后生成的缺失信息补充。已完成的资料检查:1. 三个输入文件都有对应 Markdown;2. PPT 的 4 页和 Excel 的 2 个工作表已出现;3. 渠道表格、32,200 总工单量、37% 退款占比和首次响应口径已核对;4. PDF 图片中的“周末夜间平均等待 14.2 分钟”已人工核对,并写入缺失信息补充文件。请回答下面 5 个问题。每个答案都要标出来源文件与章节、幻灯片或工作表;如果资料不足,请直接写“当前资料无法确认”,不要补猜。问题:1. 哪个渠道的首次响应最慢?2. 第二季度总工单量是多少?3. 退款相关工单占比是多少?4. 首次响应时间的统计口径是什么?5. 周末夜间平均等待时间是多少?
补录前,第五题只能回答“当前 Markdown 无法确认”;补录并复查以后,五个问题都有可定位的来源。第五题的答案是 14.2 分钟,来源不是模型推断,而是人工核对过的 PDF 第 4 页补充记录。

这组模拟 PDF 自带页码文字,PPT 也保留了幻灯片编号。真实文件转换后如果没有稳定页码,就用“章节标题、工作表名、表名或唯一关键词”定位,再回到原文件确认;不要让 AI 编一个看似精确的页码。
这不是“直接上传文件”和“上传 Markdown”的模型效果 A/B,因为我们没有把模型、上下文和文件解析链路全部固定。这里比较的是两种工作方式:直接上传时,资料读取过程不可见;先转换再检查时,缺页、错表、漏图和口径丢失都有机会在回答前被发现。
现在可以回到开头的业务问题:按渠道看,网页渠道整体首次响应最慢,为 11.2 分钟;按排班时段看,周末夜间平均等待为 14.2 分钟;退款工单占比为 37%。这三个数字不是同一个维度,不能混成“网页周末夜间 14.2 分钟”。资料中已经明确给出两项改进动作——周末夜间增配 2 名人工坐席、增加退款问题标准答复模板;另有一个复查安排:在 2026 年 7 月 7 日按同一口径复查。
这个结论之所以比开头更可靠,不是因为 AI 换了一个更好听的说法,而是因为每个数字、动作和时间都能回到原始文件或补充记录。
MarkItDown 适合什么,不适合什么?
它特别适合:
你经常把多个 PDF、PPT、Excel 交给 AI 做总结、问答或资料整合; 你需要知道 AI 的输入里到底保留了哪些标题、表格和数字; 你希望先在本地完成基础转换,再决定哪些内容可以交给外部模型。
它不适合单独承担:
对排版、图形位置、颜色和视觉关系要求很高的高保真转换; 没有额外 OCR,却要求完整读取扫描件和图片文字; 直接证明 Excel 公式、宏和计算口径正确; 法务、财务、医疗等高风险文件的最终正确性验收。
如果只是处理自己生成的普通办公文件,先做到“独立文件夹、最少权限、本地转换”即可。进阶安全边界是:MarkItDown 以当前进程权限访问文件或 URI;处理来源不明的外部文件时,不要让转换进程拥有多余权限,可用更窄的 convert_local() 或 convert_stream() 限定输入,并放在隔离环境中处理。
最后记住一句话
MarkItDown 不是替 AI “读得更聪明”,而是让你先看见 AI 可能读到了什么、又漏掉了什么。**工具负责把内容摊开;你负责先定检查点、对照原文件和补齐关键缺口。
以后再遇到 PDF、PPT、Excel 混合资料,不要先问“AI 总结得好不好”,先问五件事:文件齐不齐、结构在不在、表格有没有散、数字和口径能不能定位、图片文字有没有漏。
只有输入先过关,后面的总结、分析和建议才值得继续。
本文案例全部使用模拟资料。实测环境为 Windows、Python 3.12、MarkItDown 0.1.7;转换时间和结果只代表本次小型文件测试,不应外推为通用性能或准确率结论。
夜雨聆风