Com exportar Excel a Markdown amb Python

Com exportar Excel a Markdown amb Python

L’exportació de dades d’Excel a Markdown és una necessitat comuna per a canals de documentació, generadors de README i fluxos de treball de llocs estàtics. Aspose.Cells FOSS for Python ho fa amb una operació d’un sol mètode via workbook.save_as_markdown(): no cal Microsoft Office.

Nota: Aspose.Cells FOSS exporta a XLSX, CSV, TSV, Markdown i JSON. L’exportació a PDF no forma part de la biblioteca FOSS.

Per què exportar Excel a Markdown amb Aspose.Cells FOSS?

  1. Sense dependència d’Office: Converteix completament a Python sense COM natiu ni instal·lació d’Office.
  2. Suport en memòria: Genera cadenes Markdown sense cap operació d’E/S de disc utilitzant MarkdownHandler.
  3. Sortida personalitzable: Configura el comportament d’exportació mitjançant MarkdownSaveOptions.
  4. Compatible amb pipelines: Integra’t directament en generadors de documentació, llocs estàtics Hugo o fluxos de treball de GitHub Actions.

Guia pas a pas

Pas 1: Instal·la Aspose.Cells FOSS per a Python

Instal·la la biblioteca des de PyPI amb pip:

pip install aspose-cells-foss

Verifiqueu la instal·lació:

from aspose.cells_foss import Workbook
print("Ready.")

Pas 2: Crea un llibre de treball i omple les dades

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

Pas 3: Exporta a Markdown

Crida workbook.save_as_markdown() amb un .md camí de sortida:

workbook.save_as_markdown("report.md")
print("Markdown saved successfully.")

La sortida és una taula Markdown estàndard:

| Product | Q1 Revenue | Q2 Revenue |
|---|---|---|
| Widget A | 12500 | 15000 |
| Widget B | 8750 | 9200 |
| Widget C | 20000 | 22500 |

Pas 4: Personalitza amb MarkdownSaveOptions

Utilitzeu MarkdownSaveOptions per controlar el format de sortida:

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)

Passeu una instància MarkdownSaveOptions a save_as_markdown() per a la configuració.


Pas 5: Generar Markdown en memòria (sense I/O de fitxer)

Utilitzeu MarkdownHandler.save_markdown_to_string() per obtenir el Markdown com a cadena de 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.

Pas 6: Carrega un XLSX existent i exporta a Markdown

from aspose.cells_foss import Workbook

workbook = Workbook("existing_report.xlsx")
workbook.save_as_markdown("existing_report.md")
print("Markdown export complete.")

Això conserva tots els valors de les cel·les i l’estructura bàsica. Nota: L’exportació a Markdown només llegeix cell.value — les cel·les que continguin només una fórmula sense valor emmagatzemat apareixeran buides a la sortida. La biblioteca no avalua les fórmules en temps d’exportació. Per assegurar que els resultats de les fórmules apareguin, obriu el fitxer a Excel o LibreOffice primer (que avalua i emmagatzema els resultats de les fórmules), deseu-lo com a XLSX i, a continuació, torneu a exportar.


Pas 7: Gestió d’errors

Envolta les exportacions en blocs try/except per a l’ús en producció:

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

Problemes comuns i solucions

1. Sortida Markdown buida

Cause: El full de càlcul no té cel·les poblades.
Fix: Confirmeu que ws.cells["A1"].value està establert i no None abans de cridar save_as_markdown().

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

Cause: El paquet no està instal·lat o s’ha utilitzat un nom de paquet incorrecte.
Fix: Executeu pip install aspose-cells-foss. La importació és from aspose.cells_foss import ... (guió baix, no punt).

3. AttributeError: 'Workbook' object has no attribute 'save_as_markdown'

Cause: Heu instal·lat el paquet incorrecte (aspose-cells-python en comptes de aspose-cells-foss).
Fix: pip install aspose-cells-foss i confirmeu from aspose.cells_foss import Workbook.

4. Problemes de codificació al fitxer de sortida

Causa: Escriure la cadena Markdown a un fitxer sense especificar la codificació UTF-8.
Solució: Utilitzeu MarkdownHandler.save_markdown_to_string() i escriviu explícitament:

with open("output.md", "w", encoding="utf-8") as f:
    f.write(md_string)

Preguntes freqüents

Puc exportar a PDF en comptes?

No. L’exportació a PDF no està disponible a Aspose.Cells FOSS. Utilitzeu el paquet comercial aspose-cells-python per a la sortida PDF.

Quins formats d’entrada puc carregar i després exportar a Markdown?

Els fitxers XLSX i CSV es poden carregar amb Workbook("file.xlsx") i després exportar-los a Markdown.

Com puc exportar només una fulla quan hi ha diverses fulles?

Per defecte, save_as_markdown() exporta el primer full de treball. Passeu una instància MarkdownSaveOptions per a una configuració addicional.

Puc executar això a Linux o macOS?

Sí. La biblioteca s’executa a Windows, Linux i macOS sense cap configuració específica de la plataforma.


Recursos relacionats:

 Català