Python實現(xiàn)將Word、Excel、PDF轉換為Markdown格式
一、簡介
微軟近期在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開源許可下發(fā)布,這意味著開發(fā)人員可以自由地使用、修改和分發(fā)該工具庫。唯一的限制是在分發(fā)時,需要包含原始的許可證和版權聲明,以確保開源社區(qū)的權益得到保護。
二、安裝
最佳環(huán)境要求: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
還可以通過管道傳輸內(nèi)容:
cat path-to-file.pdf | markitdown
cat path-to-file.pdf | markitdown
3.2、用 Python 調(diào)用
Python 中的基本用法
用 Python 調(diào)用并轉換文件內(nèi)容的命令格式如下:
from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("test.xlsx")
print(result.text_content)測試不同格式文件轉換Markdown的效果
(1) 、Excel表格轉換成Markdown 格式
Excel文件 TIOBE202412.xlsx內(nèi)容如下:

執(zhí)行代碼:
# 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版本,簡單表格可以正常轉換,但數(shù)字由%轉換成了小數(shù)格式。
(2) 、Word文檔轉換成Markdown 格式
Word文件 "test.docx"內(nèi)容如下:

在命令行執(zhí)行:
markitdown test.docx > document.md
生成的document.md內(nèi)容如下:
## 第一章、概述
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)
## 第二章、統(tǒng)計
| **(過去 12 個月** | **最大值** | **平均值** | **最小值** |
| --- | --- | --- | --- |
| 高溫 (°C) | 38 | 28 | 9 |
| 低溫 (°C) | 29 | 22 | 7 |
| 降水 (毫米) | 160.55 | 8.86 | 0 |
| 風速 (公里/小時) | 19 | 8.89 | 3 |
## 第三章、特色
### 1. 預覽本地文檔
您可以上傳并在線查看您計算機的文檔。
### 2. 預覽網(wǎng)絡文檔
您可以對網(wǎng)絡文檔進行預覽。
### 3. 閱讀進度條
doc, docx, ppt, pptx和txt文檔大于約3頁時,預覽頁面底部會出現(xiàn)閱讀進度條。
### 4. 安全等級
每個文檔都可以設置兩種訪問方式:
公開:任何人可以訪問并預覽,適用于公開文檔
私有:只能通過會話ID預覽,會話過期后就需要重新獲取預覽會話ID,該預覽方式適用于私有文檔
## 第四章、系統(tǒng)架構
### 1. 單機版架構
I Doc View在線文檔預覽服務
Tomcat/Jetty
Nginx/Apache
數(shù)據(jù)庫
I Doc View文檔轉換器
網(wǎng)頁瀏覽器:手機、平板或電腦
原始文檔
轉換文檔
I Doc View在線文檔預覽服務所需軟件分為兩類:
1. 私有軟件:包括“在線文檔預覽服務WEB應用”和“在線文檔預覽轉換器”,這兩種軟件的獲取與授權詳情請聯(lián)系I Doc View客服;
2. 公有軟件:公有軟件為I Doc View在線文檔預覽服務正常運行所需的其他軟件,大部分開源免費,根據(jù)自己實際情況從其官網(wǎng)獲取,也可從I Doc View提供的統(tǒng)一下載地址來獲取。
配置示例:
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;
}
}或者通過代碼執(zhí)行:
from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("test.docx")
print(result.text_content)結果經(jīng)過渲染后得到的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文件 “圣誕節(jié).pdf ”內(nèi)容如下:

我通過命令行,將“圣誕節(jié).pdf ”文件轉換成“output.md”格式的文件,
執(zhí)行命令如下:
markitdown 圣誕節(jié).pdf > output.md
轉換后的“output.md”文件內(nèi)容如下:

測試結果:
markitdown V0.0.1a3版本,
“圣誕節(jié).pdf ”文件能轉換成“output.md”格式的文件,但pdf里面的圖片不能轉換到md文檔里面
只能提取文本,但整個結構丟失了,它只轉換為文本,而不是 Markdown,并且標題和表格無法轉換。
使用大型語言模型
要使用大型語言模型進行圖像描述,請?zhí)峁﹍lm_client和llm_model:
from markitdown import MarkItDown
from openai import OpenAI
client = 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版本在轉換過程中仍有些問題,仍有優(yōu)化的空間。
通過MarkItDown將word、execel、PDF等文件轉換為Markdown 格式,我們在此基礎上再修改,可以節(jié)省不少時間。
以上就是Python實現(xiàn)將Word、Excel、PDF轉換為Markdown格式的詳細內(nèi)容,更多關于Python Markdown格式轉換的資料請關注腳本之家其它相關文章!
相關文章
Pandas進階指南之數(shù)據(jù)合并與缺失值處理詳解
這篇文章主要為大家詳細介紹了使用Python的pandas庫進行Excel數(shù)據(jù)處理的進階技巧,主要包括數(shù)據(jù)清洗,多表合并與拼接,數(shù)據(jù)透?視表制作等辦公自動化核心功能,希望對大家有所幫助2026-04-04
在Python同步方法中調(diào)用異步方法不阻塞主流程的幾種方案
這篇文章主要介紹了在Python同步方法中調(diào)用異步方法不阻塞主流程的幾種方案,包括使用asyncio.create_task()、threading和concurrent.futures,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2025-03-03
Python中isinstance和hasattr的實現(xiàn)示例
本文詳細介紹了Python中的兩個內(nèi)置函數(shù)isinstance和hasattr,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-12-12
Python作用域(局部?全局)及global關鍵字使用詳解
這篇文章主要為大家介紹了Python作用域(局部?全局)及global關鍵字使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10

