如何在 Python 中将 Excel 导出为 Markdown

如何在 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??

  1. 无 Office 依赖::完全在 Python 中转换,无需本机 COM 或 Office 安装。.
  2. 内存中支持::使用以下方式生成 Markdown 字符串,无需任何磁盘 I/O。 MarkdownHandler.
  3. 可自定义输出::通过以下方式配置导出行为。 MarkdownSaveOptions.
  4. 友好的流水线集成::直接集成到文档生成器、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. Empty Markdown output

原因::工作表没有填充的单元格。. 解决方法::确认 ws.cells["A1"].value 已设置且不是 None 在调用之前 save_as_markdown().

2. ModuleNotFoundError: No module named 'aspose.cells_foss'

原因::未安装该软件包或使用了错误的软件包名称。. 解决方法: 运行 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. Encoding issues in output file

: 原因: 将 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 上运行,无需任何平台特定的设置。.


相关资源::

 中文