博客 / 詳情

返回

如何用 Python 將 Markdown 轉換為 Word 文檔

在當今的技術文檔工作流中,Markdown 因其簡潔的語法和版本控制友好的特性,已成為開發者和技術寫作者的首選格式。然而,在企業環境中,Word 文檔仍然是正式報告、客户交付物和標準化文檔的主流格式。

本文將分享如何使用 Free Spire.Doc for Python—一款免費的 Python 文檔處理庫,快速實現 Markdown 到 Word 的轉換,涵蓋基礎轉換、批量處理等實用場景,新手也能輕鬆上手。


 

一、環境準備

Free Spire.Doc for Python 是免費 Python 文檔處理庫,無需依賴 Microsoft Word,支持 Word 文檔的創建、編輯、轉換等操作,其中內置的 Markdown 解析能力,能高效實現 Markdown 到 Doc/Docx 格式的轉換,且兼容常見的 Markdown 語法(標題、列表、圖片、鏈接等)。

安裝
打開終端/命令提示符,執行以下pip安裝命令:

pip install Spire.Doc.Free

 


 

二、基礎實現:單篇 Markdown 轉 Word

場景1:將 Markdown 文本直接轉換為 Word

適用於 Markdown 內容較短、無需讀取文件的場景,核心代碼如下:

from spire.doc import *
from spire.doc.common import *

# 1. 定義要轉換的Markdown文本(涵蓋常見語法)
markdown_text = """
# 一級標題:Markdown轉Word測試
## 二級標題:功能演示
### 三級標題:基礎語法支持

#### 1. 段落與強調
這是一段普通段落,支持**粗體**、*斜體*、`行內代碼`,以及[超鏈接](https://www.google.com/)。

#### 2. 列表
- 無序列表項1
- 無序列表項2
  - 子列表項

1. 有序列表項1
2. 有序列表項2

#### 3. 代碼塊
```python
print("Hello, Markdown to Word!")
a = 1 + 2
```
"""

# 1. 將markdown文本寫入md文檔
markdown_path = "input.md"
with open(markdown_path, 'w', encoding='utf-8') as f:
    f.write(markdown_text)

# 2. 創建Document對象
doc = Document()

# 3. 加載md文檔
doc.LoadFromFile(markdown_path, FileFormat.Markdown)

# 4. 保存為Word文檔(支持.doc和.docx格式)
output_path = "Markdown轉Word.docx"
doc.SaveToFile(output_path, FileFormat.Docx)

# 5. 釋放資源
doc.Close()

print(f"轉換完成!Word文檔已保存至:{output_path}")

 

場景2:讀取 Markdown 文件轉換為 Word

適用於已有.md文件的場景(如test.md),代碼更簡潔:

from spire.doc import Document
from spire.doc import FileFormat

# 1. 創建Document對象
doc = Document()

# 2. 直接加載Markdown文件(指定文件路徑)
markdown_file_path = "test.md"
doc.LoadFromFile(markdown_file_path, FileFormat.Markdown)

# 3. 保存為Word文檔
output_path = "Markdown轉Word.docx"
doc.SaveToFile(output_path, FileFormat.Docx)

# 4. 釋放資源
doc.Close()

print(f"文件轉換完成!路徑:{output_path}")

 

代碼關鍵説明:
  • Document():創建一個空的 Word 文檔對象,是所有操作的核心載體;
  • LoadFromFile():加載 Markdown 文件,第二個參數 FileFormat.Markdown 指定解析格式;
  • SaveToFile():接收輸出路徑和文件格式(FileFormat.Docx/FileFormat.Doc),完成保存;
  • Close():釋放文檔資源,避免內存佔用。

 

三、批量轉換多個 Markdown 文件

Free Spire.Doc for Python 支持批量轉換一個文件夾中的多個 Markdown 文檔。

import os
from spire.doc import Document
from spire.doc import FileFormat

# 1. 定義Markdown文件所在文件夾和輸出文件夾
md_folder = "./markdown_files"
output_folder = "./word_files"

# 2. 創建輸出文件夾(若不存在)
if not os.path.exists(output_folder):
    os.makedirs(output_folder)

# 3. 遍歷文件夾中的所有.md文件
for filename in os.listdir(md_folder):
    if filename.endswith(".md"):
        # 拼接文件路徑
        md_path = os.path.join(md_folder, filename)
        # 生成輸出Word文件名(替換後綴為.docx)
        output_filename = os.path.splitext(filename)[0] + ".docx"
        output_path = os.path.join(output_folder, output_filename)

        # 4. 轉換邏輯
        doc = Document()
        doc.LoadFromFile(md_path, FileFormat.Markdown)
        doc.SaveToFile(output_path, FileFormat.Docx)
        doc.Close()

        print(f"已轉換:{filename} -> {output_filename}")

print("所有Markdown文件批量轉換完成!")

 


 

常見問題與注意事項

  1. 格式兼容問題:部分小眾 Markdown 語法(如 Mermaid 流程圖、LaTeX 公式)暫不支持,轉換後可能顯示異常,建議提前簡化這類內容;
  2. 編碼問題:若 Markdown 文件含中文,建議保存為 UTF-8 編碼,避免轉換後出現亂碼;
  3. 免費版限制:Free Spire.Doc for Python 免費版對文檔頁數有限制,滿足日常輕量使用。

 

通過本文介紹的方法,我們可以通過幾行 Python 代碼實現 Markdown 轉 Word 文檔,同時支持批量處理等擴展功能,完美適配日常辦公、文檔交付等場景。相比其他轉換工具,Free Spire.Doc 無需依賴第三方服務,本地運行更安全,且 Python 接口友好,新手易上手。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.