MarkItDown的使用(将Word、Excel、PDF等转换为Markdown格式)
MarkItDown的使用(将Word、Excel、PDF等转换为Markdown格式)
本文目录:
零、时光宝盒🌻
一、简介
二、安装
三、使用方法
3.1、使用命令行形式
3.2、用 Python 调用
四、总结
五、参考资料
零、时光宝盒🌻
(https://blog.csdn.net/weixin_69553582 逆境清醒)


在心理学中,有个实验——三山实验,是1956年,让·皮亚杰(Jean Piaget)设计的。
这三山实验的场景设置在一个小房间内,房间中央摆放着三座高低不一的山模型,实验对象是一群4到7岁的孩子。
“你从这里看,这三座山是什么样的?”孩子们会很自然地描述他们眼前看到的山。
无论孩子们是坐在房间的一侧,还是坐在房间的另一侧,孩子们都能准确描述他们眼前看到的山的景象。
然而,当皮亚杰问到:“如果你们的玩具伙伴小熊坐在你刚才的位置,它看到的山会是什么样子?”孩子们往往会说:“小熊看到的也是我看到的这样的山。
大多数4到7岁的孩子无法理解小熊从另一个角度看到的山会与他们自己看到的不同。他们往往会说:“小熊看到的也是这样的山。”即使皮亚杰继续引导,孩子们仍然难以摆脱自己的视角,去设想小熊的视角。这一现象被称为“自我中心性”。
然而,当实验对象变为8岁及以上的孩子时,情况发生了变化。这些孩子能够准确地描述出小熊从另一个角度看山的情景,甚至还能画出不同视角的山的示意图。这表明他们已经具备了一定的“去中心化”能力,能够站在他人的角度思考问题。
在现实生活中,我们常常会遇到类似的情境。比如,当你与朋友发生争执时,你是否能够设身处地地站在对方的角度思考问题?当你批评孩子的行为时,你是否意识到他们的认知局限?这些问题看似简单,但要想真正做到,却需要我们不断努力和反思。
它告诉我们,每个人都有自己的视角,而理解和尊重他人的视角是我们社交和沟通的基础。当我们开始尝试从他人的角度思考问题,我们不仅变得更加成熟,也更加智慧。
逆境清醒
2024.12.25

一、简介

微软近期在GitHub平台上推出了一款名为MarkItDown的开源Python工具库,为用户提供了将多种文件格式转换为Markdown格式的便捷途径。
MarkItDown不仅支持将Office文档如Word、Excel、PowerPoint等转换为Markdown,还能处理PDF、图片、音频、HTML以及多种文本格式,如csv、json和xml等。
通过该工具,用户可以轻松地将各类文档转换为Markdown格式,进而便于文本的索引、搜索和分析等操作。
MarkItDown 是一个用于将各种文件转换为 Markdown 的实用程序(例如,用于索引、文本分析等)。 将各类文档自动转换为 Markdown 格式,它支持:
- PowerPoint
- Word
- Excel
- Images (EXIF metadata and OCR)
- Audio (EXIF metadata and speech transcription)
- HTML
- Text-based formats (CSV, JSON, XML)
- ZIP files (iterates over contents)
MarkItDown在MIT开源许可下发布,这意味着开发人员可以自由地使用、修改和分发该工具库。唯一的限制是在分发时,需要包含原始的许可证和版权声明,以确保开源社区的权益得到保护。
二、安装
最佳环境要求:Python语言:3.12
要安装 MarkItDown,可以通过 pip 安装工具使用命令:
pip install markitdown
或者,
您可以从源安装它:
pip install -e .
三、使用方法
MarkItDown 提供了便捷的命令行工具,支持多种输入方式:
3.1、使用命令行形式
命令格式:
markitdown path-to-file.pdf > document.md
举例:
将example.pdf 文件生成output.md
命令如下:
markitdown example.pdf > output.md
还可以通过管道传输内容:
cat path-to-file.pdf | markitdown
cat path-to-file.pdf | markitdown
3.2、用 Python 调用
3.2.1 、Python 中的基本用法
用 Python 调用并转换文件内容的命令格式如下:
from markitdown import MarkItDownmd = MarkItDown()
result = md.convert("test.xlsx")
print(result.text_content)
3.2.2、测试不同格式文件转换Markdown的效果
(1) 、Excel表格转换成Markdown 格式
Excel文件 TIOBE202412.xlsx内容如下:

执行代码:
# Excel表格转换成Markdown 格式from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("TIOBE202412.xlsx")
print(result.text_content)
输出结果:
## TIOBE 12月编程语言流行度排名
| 2024-12-01 00:00:00 | 2023-12-01 00:00:00 | Unnamed: 2 | Ratings | Change |
| --- | --- | --- | --- | --- |
| 1 | 1 | Python | 0.2384 | 0.0998 |
| 2 | 3 | C++ | 0.1082 | 0.0081 |
| 3 | 4 | Java | 0.0972 | 0.0173 |
| 4 | 2 | C | 0.0910 | -0.0234 |
| 5 | 5 | C# | 0.0487 | -0.0243 |
| 6 | 6 | JavaScript | 0.0461 | 0.0172 |
| 7 | 13 | Go | 0.0217 | 0.0114 |
| 8 | 9 | SQL | 0.0199 | 0.0037 |
| 9 | 8 | Visual Basic | 0.0196 | 0.0014 |
| 10 | 12 | Fortran | 0.0179 | 0.0072 |
| 11 | 16 | Delphi/Object Pascal | 0.0144 | 0.0052 |
| 12 | 7 | PHP | 0.0139 | -0.0062 |
| 13 | 11 | Scratch | 0.0133 | 0.0026 |
| 14 | 18 | Rust | 0.0129 | 0.0048 |
| 15 | 14 | MATLAB | 0.0109 | 0.0016 |
| 16 | 20 | R | 0.0105 | 0.0033 |
| 17 | 10 | Assembly language | 0.0104 | -0.0007 |
| 18 | 19 | Ruby | 0.0103 | 0.0026 |
| 19 | 23 | COBOL | 0.0098 | 0.0030 |
| 20 | 17 | Swift | 0.0098 | 0.0016 |
代码渲染效果如下:

测试结果:
markitdown V0.0.1a3版本,
简单表格可以正常转换,但数字由%转换成了小数格式。
(2) 、Word文档转换成Markdown 格式
Word文件 "test.docx"内容如下:

在命令行执行:
markitdown test.docx > document.md
生成的document.md内容如下:
## 第一章、概述MarkItDown is a utility for converting various files to Markdown (e.g., for indexing, text analysis, etc). It supports:* PDF
* PowerPoint
* Word
* Excel
* Images (EXIF metadata and OCR)
* Audio (EXIF metadata and speech transcription)
* HTML
* Text-based formats (CSV, JSON, XML)
* ZIP files (iterates over contents)## 第二章、统计| **(过去 12 个月** | **最大值** | **平均值** | **最小值** |
| --- | --- | --- | --- |
| 高温 (°C) | 38 | 28 | 9 |
| 低温 (°C) | 29 | 22 | 7 |
| 降水 (毫米) | 160.55 | 8.86 | 0 |
| 风速 (公里/小时) | 19 | 8.89 | 3 |## 第三章、特色### 1. 预览本地文档您可以上传并在线查看您计算机的文档。### 2. 预览网络文档您可以对网络文档进行预览。### 3. 阅读进度条doc, docx, ppt, pptx和txt文档大于约3页时,预览页面底部会出现阅读进度条。### 4. 安全等级每个文档都可以设置两种访问方式:公开:任何人可以访问并预览,适用于公开文档私有:只能通过会话ID预览,会话过期后就需要重新获取预览会话ID,该预览方式适用于私有文档## 第四章、系统架构### 1. 单机版架构I Doc View在线文档预览服务Tomcat/JettyNginx/Apache数据库I Doc View文档转换器网页浏览器:手机、平板或电脑原始文档转换文档I Doc View在线文档预览服务所需软件分为两类:1. 私有软件:包括“在线文档预览服务WEB应用”和“在线文档预览转换器”,这两种软件的获取与授权详情请联系I Doc View客服;2. 公有软件:公有软件为I Doc View在线文档预览服务正常运行所需的其他软件,大部分开源免费,根据自己实际情况从其官网获取,也可从I Doc View提供的统一下载地址来获取。配置示例:upstream docview\_backend\_cluster {hash $arg\_md5 consistent;server docview1;server docview2;server {server\_name https://blog.csdn.net/weixin\_69553582;location / {proxy\_pass http://docview\_backend\_cluster;}}
或者通过代码执行:
from markitdown import MarkItDownmd = MarkItDown()
result = md.convert("test.docx")
print(result.text_content)
结果经过渲染后得到的markdown页面效果:

总结:
markitdown V0.0.1a3版本,
word文档里的简单表格和文字能够转换成markdown格式,但word里的绘图无法转换
(3)、PDF文档转换成Markdown 格式
将PDF文件转换成.md格式的文件的命令格式:
markitdown pdf文件 > 你的文件名.md
markitdown path-to-file.pdf > document.md
或者使用-o指定输出文件:
markitdown path-to-file.pdf -o document.md
PDF文件 “圣诞节.pdf ”内容如下:

我通过命令行,将“圣诞节.pdf ”文件转换成“output.md”格式的文件,
执行命令如下:
markitdown 圣诞节.pdf > output.md
转换后的“output.md”文件内容如下:

测试结果:
markitdown V0.0.1a3版本,
“圣诞节.pdf ”文件能转换成“output.md”格式的文件,但pdf里面的图片不能转换到md文档里面
只能提取文本,但整个结构丢失了,它只转换为文本,而不是 Markdown,并且标题和表格无法转换。
3.2.3、使用大型语言模型
要使用大型语言模型进行图像描述,请提供llm_client和llm_model:
from markitdown import MarkItDown
from openai import OpenAIclient = OpenAI()
md = MarkItDown(llm_client=client, llm_model="gpt-4o")
result = md.convert("example.jpg")
print(result.text_content)
四、总结
MarkItDown 是一个用于将各种文件转换为 Markdown 的实用程序(例如,用于索引、文本分析等)。 通过一行或几行代码将各类文档自动转换为 Markdown 格式,这个功能很方便。但可能是因为刚开始,markitdown V0.0.1a3版本在转换过程中仍有些问题,仍有优化的空间。
通过MarkItDown将word、execel、PDF等文件转换为Markdown 格式,我们在此基础上再修改,可以节省不少时间。
五、参考资料:
GitHub - microsoft/markitdown: Python tool for converting files and office documents to Markdown.
推荐阅读:
|
|
|
|
| 给照片换底色(python+opencv) | 猫十二分类 | 基于大模型的虚拟数字人__虚拟主播实例 |
|
|
|
|
| 计算机视觉__基本图像操作(显示、读取、保存) | 直方图(颜色直方图、灰度直方图) | 直方图均衡化(调节图像亮度、对比度) |
|
|
|
|
| 语音识别实战(python代码)(一) | 人工智能基础篇 | 计算机视觉基础__图像特征 |
逆境清醒
|
| ||
| matplotlib 自带绘图样式效果展示速查(28种,全) | ||
|
| ||
| Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一) | ||
|
|
|
|
| 立体多层玫瑰绘图源码__玫瑰花python 绘图源码集锦 | Python 3D可视化(一) | 让你的作品更出色——词云Word Cloud的制作方法(基于python,WordCloud,stylecloud) |
|
|
|
|
| python Format()函数的用法___实例详解(一)(全,例多)___各种格式化替换,format对齐打印 | 用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心) | python爱心源代码集锦(18款) |
|
|
|
|
| Python中Print()函数的用法___实例详解(全,例多) | Python函数方法实例详解全集(更新中...) | 《 Python List 列表全实例详解系列(一)》__系列总目录、列表概念 |
|
|
| |
| 用代码过中秋,python海龟月饼你要不要尝一口? | python练习题目录 | |
|
|
|
|
| 草莓熊python turtle绘图(风车版)附源代码 | 草莓熊python turtle绘图代码(玫瑰花版)附源代码 | 草莓熊python绘图(春节版,圣诞倒数雪花版)附源代码 |
|
|
| |
| 巴斯光年python turtle绘图__附源代码 | 皮卡丘python turtle海龟绘图(电力球版)附源代码 | |
|
|
|
|
| Node.js (v19.1.0npm 8.19.3) vue.js安装配置教程(超详细) | 色彩颜色对照表(一)(16进制、RGB、CMYK、HSV、中英文名) | 2024年12月多家权威机构____编程语言排行榜__薪酬状况 |
|
|
|
|
| 手机屏幕坏了____怎么把里面的资料导出(18种方法) | 【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向) | 查看jdk安装路径,在windows上实现多个java jdk的共存解决办法,安装java19后终端乱码的解决 |
|
| ||
| vue3 项目搭建教程(基于create-vue,vite,Vite + Vue) | ||
|
|
|
|
| 2023年春节祝福第二弹——送你一只守护兔,让它温暖每一个你【html5 css3】画会动的小兔子,炫酷充电,字体特 | 别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(4套) | SVG实例详解系列(一)(svg概述、位图和矢量图区别(图解)、SVG应用实例) |
|
|
|
|
| 【程序人生】卡塔尔世界杯元素python海龟绘图(附源代码),世界杯主题前端特效5个(附源码) | HTML+CSS+svg绘制精美彩色闪灯圣诞树,HTML+CSS+Js实时新年时间倒数倒计时(附源代码) | 2023春节祝福系列第一弹(上)(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载) |
|
|
|
|
| tomcat11、tomcat10 安装配置(Windows环境)(详细图文) | Tomcat端口配置(详细) | Tomcat 启动闪退问题解决集(八大类详细) |
逆境清醒
相关文章:
MarkItDown的使用(将Word、Excel、PDF等转换为Markdown格式)
MarkItDown的使用(将Word、Excel、PDF等转换为Markdown格式) 本文目录: 零、时光宝盒🌻 一、简介 二、安装 三、使用方法 3.1、使用命令行形式 3.2、用 Python 调用 四、总结 五、参考资料 零、时光宝盒🌻 &a…...
一文彻底拿捏DevEco Studio的使用小技巧
程序员Feri一名12年的程序员,做过开发带过团队创过业,擅长Java相关开发、鸿蒙开发、人工智能等,专注于程序员搞钱那点儿事,希望在搞钱的路上有你相伴!君志所向,一往无前! 0.安装DevEco Studio DevEco Studio面向HarmonyOS应用及元服务开发者提供的集成开…...
R9000P键盘失灵解决办法
问题描述 突然,就是很突然,我买的R9000P 2024不到三个月,键盘突然都不能用了,是所有键盘按键都无效的那种。(可以使用外接键盘) 解决办法 我本科室友说的好哈,全坏全没坏。 (该解…...
【Linux之Shell脚本实战】编写简单计算器shell脚本
【Linux之Shell脚本实战】编写简单计算器shell脚本 一、Shell脚本介绍1.1 Shell脚本简介1.2 Shell脚本特点二、脚本要求三、检查本地环境3.1 本地环境规划3.2 检查本地系统3.3 检查系统内核版本四、编写脚本4.1 脚本内容4.2 脚本分析整体逻辑各功能实现使用方法4.3 执行效果五、…...
【0x001D】HCI_Read_Remote_Version_Information命令详解
目录 一、命令概述 二、命令格式及参数说明 2.12. HCI_Read_Remote_Version_Information 命令格式 2.2. Connection_Handle 三、生成事件 3.1. HCI_Command_Status 事件 3.2. HCI_Read_Remote_Version_Information_Complete 事件 四、命令执行流程 4.1. 命令发起阶段(…...
秒鲨后端之MyBatis【2】默认的类型别名、MyBatis的增删改查、idea中设置文件的配置模板、MyBatis获取参数值的两种方式、特殊SQL的执行
别忘了请点个赞收藏关注支持一下博主喵!!!! ! ! 下篇更新: 秒鲨后端之MyBatis【3】自定义映射resultMap、动态SQL、MyBatis的缓存、MyBatis的逆向工程、分页插件。 默认的类型别名 MyBatis的增删改查 添加 <!--int insertUs…...
python中使用selenium执行组合快捷键ctrl+v不生效问题
在执行ctrlv进行粘贴时,绑定一个页面上的元素对象(无论元素对象是否是引用过期或者是粘贴的目标文本区,但前提需要粘贴的目标文本区获取焦点)执行ctrlv后可以生效。执行粘贴组合快捷键(ctrlv)的示例代码 se…...
大语言模型中的Agent;常见的Agent开发工具或框架
大语言模型中的Agent 大语言模型中的Agent是指以大语言模型为核心驱动,具有自主理解、感知、规划、记忆和使用工具等能力,能够自动化执行复杂任务的系统.以下是一些例子: AutoGPT:它相当于一个完整的工具包,可以为各种项目构建和运行自定义AI Agent。使用OpenAI的GPT-4和…...
VSCode 性能优化指南:提高编码效率,减少资源占用
Visual Studio Code(简称VSCode)是一款广受欢迎的代码编辑器,以其强大的功能和丰富的插件生态系统著称。然而,随着项目规模的扩大和插件数量的增加,VSCode 的性能可能会受到影响。本文将介绍一系列优化措施,…...
深入理解C++ 容器类
承接Qt/C软件开发项目,高质量交付,灵活沟通,长期维护支持。需求所寻,技术正适,共创完美,欢迎私信联系! 引言 C 标准库提供了丰富的容器(container)类型,用于存…...
优化 invite_codes 表的 SQL 创建语句
-- auto-generated definition create table invite_codes (id int auto_incrementprimary key,invite_code varchar(6) not null comment 邀请码,6位整数,确保在有效期内…...
springboot容器无法获取@Autowired对象,报null对象空指针问题的解决方式
示例错误代码: package com.uniin.ib.provider.iot.handle;Slf4j Component public class FireStringInboundHandler extends ChannelInboundHandlerAdapter {Autowiredprivate RsFireMonitoringMapper rsFireMonitoringMapper;Autowiredprivate RsFireAlertMapper…...
服务器数据恢复—Lustre分布式文件系统下服务器节点进水的数据恢复案例
服务器数据恢复环境&故障: 5台节点服务器,每台节点服务器上有一组RAID5阵列。每组RAID5阵列上有6块硬盘(其中1块硬盘设置为热备盘,其他5块硬盘为数据盘)。上层系统环境为Lustre分布式文件系统。 机房天花板漏水导致…...
由于这些关键原因,我总是手边有一台虚拟机
概括 虚拟机提供了一个安全的环境来测试有风险的设置或软件,而不会影响您的主系统。设置和保存虚拟机非常简单,无需更改主要设备即可方便地访问多个操作系统。运行虚拟机可能会占用大量资源,但现代 PC 可以很好地处理它,为实验和工作流程优化提供无限的可能性。如果您喜欢使…...
word无法创建工作文件,检查临时环境变量。
word无法创建工作文件,检查临时环境变量。 word preview版本,关联打开文件出现报错。word无法创建工作文件,检查临时环境变量。 打开注册表,删除键 Word Preview: HKCR\CLSID{84F66100-FF7C-4fb4-B0C0-02CD7FB668FE} PowerPoint …...
照亮技术传播之路:构建卓越的技术文档
照亮技术传播之路:构建卓越的技术文档 引言 在信息技术快速发展的今天,技术文档作为沟通开发者、用户以及其他利益相关者的桥梁,其重要性不言而喻。一份优秀的技术文档不仅能够帮助团队成员理解项目背景和技术细节,还能够在产品…...
20241225在ubuntu20.04.5下监控SSD
20241225在ubuntu20.04.5下监控SSD 2024/12/25 20:29 参考资料: 百度:ubuntu查看ssd寿命 方法 1:使用「磁盘」工具监测 SSD 健康状态 sudo apt install gnome-disk-utility 方法 2:使用 smartctl 工具检查 SSD 健康状态 Ubuntu 和…...
Flink定时器
flink的定时器都是基于事件时间(event time)或事件处理时间(processing time)的变化来触发响应的。对一部分新手玩家来说,可能不清楚事件时间和事件处理时间的区别。我这里先说一下我的理解,防止下面懵逼。…...
《算力互联互通标准体系1.0》发布,为算力互联成网发展提供指导框架
2024年政府工作报告提出:“适度超前建设数字基础设施,加快形成全国一体化算力体系,培育算力产业生态”。因此提供普惠化算力服务、培育算力大市场的算力互联网体系是响应国家布局的重要路径。 我国算力产业发展已取得突破性进展,…...
视频监控平台:Liveweb视频汇聚融合平台智慧安防视频监控应用方案
Liveweb是一款功能强大、灵活部署的安防视频监控平台,支持多种主流标准协议,包括GB28181、RTSP/Onvif、RTMP等,同时兼容海康Ehome、海大宇等厂家的私有协议和SDK接入。该平台不仅提供传统安防监控功能,还支持接入AI智能分析&#…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...
nnUNet V2修改网络——暴力替换网络为UNet++
更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...
UE5 音效系统
一.音效管理 音乐一般都是WAV,创建一个背景音乐类SoudClass,一个音效类SoundClass。所有的音乐都分为这两个类。再创建一个总音乐类,将上述两个作为它的子类。 接着我们创建一个音乐混合类SoundMix,将上述三个类翻入其中,通过它管理每个音乐…...
Win系统权限提升篇UAC绕过DLL劫持未引号路径可控服务全检项目
应用场景: 1、常规某个机器被钓鱼后门攻击后,我们需要做更高权限操作或权限维持等。 2、内网域中某个机器被钓鱼后门攻击后,我们需要对后续内网域做安全测试。 #Win10&11-BypassUAC自动提权-MSF&UACME 为了远程执行目标的exe或者b…...
npm安装electron下载太慢,导致报错
npm安装electron下载太慢,导致报错 背景 想学习electron框架做个桌面应用,卡在了安装依赖(无语了)。。。一开始以为node版本或者npm版本太低问题,调整版本后还是报错。偶尔执行install命令后,可以开始下载…...













