如何在 Python 中将 Excel 导出为 Markdown
将 Excel 数据导出为 Markdown 是文档流水线、README 生成器和静态站点工作流中的常见需求。Aspose.Cells FOSS for Python 通过 workbook.save_as_markdown() 实现单方法操作:无需 Microsoft Office。
注意:Aspose.Cells FOSS 导出为 XLSX、CSV、TSV、Markdown 和 JSON。PDF 导出不属于 FOSS 库。
为什么使用 Aspose.Cells FOSS 将 Excel 导出为 Markdown?
- No Office dependency:完全在 Python 中转换,无需本机 COM 或 Office 安装。
- In-memory support:使用
MarkdownHandler生成 Markdown 字符串,无需任何磁盘 I/O。 - Customizable output:通过
MarkdownSaveOptions配置导出行为。 - Pipeline-friendly:直接集成到文档生成器、Hugo 静态站点或 GitHub Actions 工作流中。
分步指南
步骤 1:安装 Aspose.Cells FOSS for Python
使用 pip 从 PyPI 安装库:
pip install aspose-cells-foss验证安装:
from aspose.cells_foss import Workbook
print("Ready.")步骤 2:创建工作簿并填充数据
from aspose.cells_foss import Workbook, Cell
workbook = Workbook()
ws = workbook.worksheets[0]
##Headers
ws.cells["A1"].value = "Product"
ws.cells["B1"].value = "Q1 Revenue"
ws.cells["C1"].value = "Q2 Revenue"
##Data rows
ws.cells["A2"].value = "Widget A"
ws.cells["B2"].value = 12500
ws.cells["C2"].value = 15000
ws.cells["A3"].value = "Widget B"
ws.cells["B3"].value = 8750
ws.cells["C3"].value = 9200
ws.cells["A4"].value = "Widget C"
ws.cells["B4"].value = 20000
ws.cells["C4"].value = 22500步骤 3:导出为 Markdown
调用 workbook.save_as_markdown(),使用 .md 输出路径:
workbook.save_as_markdown("report.md")
print("Markdown saved successfully.")输出是一个标准的 Markdown 表格:
| Product | Q1 Revenue | Q2 Revenue |
|---|---|---|
| Widget A | 12500 | 15000 |
| Widget B | 8750 | 9200 |
| Widget C | 20000 | 22500 |步骤 4:使用 MarkdownSaveOptions 自定义
使用 MarkdownSaveOptions 来控制输出格式:
from aspose.cells_foss import Workbook, Cell, MarkdownSaveOptions
workbook = Workbook()
ws = workbook.worksheets[0]
ws.cells["A1"].value = "City"
ws.cells["B1"].value = "Population"
ws.cells["A2"].value = "London"
ws.cells["B2"].value = 9000000
ws.cells["A3"].value = "Tokyo"
ws.cells["B3"].value = 13960000
options = MarkdownSaveOptions()
workbook.save_as_markdown("cities.md", options)将 MarkdownSaveOptions 实例传递给 save_as_markdown() 进行配置。
步骤 5:在内存中生成 Markdown(无文件 I/O)
使用 MarkdownHandler.save_markdown_to_string() 将 Markdown 获取为 Python 字符串:
from aspose.cells_foss import Workbook, Cell, MarkdownHandler
workbook = Workbook()
ws = workbook.worksheets[0]
ws.cells["A1"].value = "Key"
ws.cells["B1"].value = "Value"
ws.cells["A2"].value = "version"
ws.cells["B2"].value = "26.3.0"
ws.cells["A3"].value = "license"
ws.cells["B3"].value = "MIT"
md_string = MarkdownHandler.save_markdown_to_string(workbook)
print(md_string)
##Use md_string in an API response, a GitHub README template, etc.步骤 6:加载现有 XLSX 并导出为 Markdown
from aspose.cells_foss import Workbook
workbook = Workbook("existing_report.xlsx")
workbook.save_as_markdown("existing_report.md")
print("Markdown export complete.")这会保留所有单元格值和基本结构。注意: Markdown 导出仅读取 cell.value —— 那些仅包含公式且没有缓存值的单元格在输出中将显示为空白。库在导出时不会评估公式。为确保公式结果显示,请先在 Excel 或 LibreOffice 中打开文件(该程序会评估并缓存公式结果),另存为 XLSX,然后重新导出。
步骤 7: 错误处理
在生产环境中使用时,将导出包装在 try/except 块中:
from aspose.cells_foss import Workbook
def export_to_markdown(xlsx_path: str, md_path: str) -> bool:
try:
workbook = Workbook(xlsx_path)
workbook.save_as_markdown(md_path)
return True
except FileNotFoundError:
print(f"Input file not found: {xlsx_path}")
return False
except Exception as e:
print(f"Export failed for {xlsx_path}: {e}")
return False常见问题及解决方案
1. 空的 Markdown 输出
Cause: 工作表没有填充的单元格。
Fix: 在调用 save_as_markdown() 之前,确认已设置 ws.cells["A1"].value 且未设置 None。
2. ModuleNotFoundError: No module named 'aspose.cells_foss'
Cause: 包未安装或使用了错误的包名。
Fix: 运行 pip install aspose-cells-foss。导入应为 from aspose.cells_foss import ...(下划线,而不是点)。
3. AttributeError: 'Workbook' object has no attribute 'save_as_markdown'
原因: 您安装了错误的包 (aspose-cells-python 而不是 aspose-cells-foss)。
解决方案: pip install aspose-cells-foss 并确认 from aspose.cells_foss import Workbook。
4. 输出文件中的编码问题
原因: 将 Markdown 字符串写入文件时未指定 UTF-8 编码。
修复: 使用 MarkdownHandler.save_markdown_to_string() 并显式写入:
with open("output.md", "w", encoding="utf-8") as f:
f.write(md_string)常见问题
我可以改为导出为 PDF 吗?
不。PDF 导出在 Aspose.Cells FOSS 中不可用。请使用商业 aspose-cells-python 包进行 PDF 输出。
我可以加载哪些输入格式,然后导出为 Markdown?
XLSX 和 CSV 文件可以使用 Workbook("file.xlsx") 加载,然后导出为 Markdown。
当有多个工作表时,我如何只导出一个工作表?
默认情况下,save_as_markdown() 导出第一个工作表。传入 MarkdownSaveOptions 实例以进行额外配置。
我可以在 Linux 或 macOS 上运行它吗?
是的。该库可在 Windows、Linux 和 macOS 上运行,无需任何平台特定的设置。
相关资源:
- Aspose.Cells FOSS for Python: Developer Guide
- Spreadsheet Format Export
- Getting Started / Installation
- API Reference:
MarkdownHandler,MarkdownSaveOptions,Workbook.save_as_markdown() - Knowledge Base:更多操作指南(图表、样式、加载)
- Product Overview:功能和能力摘要
- Blog: Introducing Aspose.Cells FOSS:库概览和快速入门