Ako exportovať Excel do Markdown v Pythone

Ako exportovať Excel do Markdown v Pythone

Exportovanie dát z Excelu do Markdownu je bežnou požiadavkou pre dokumentačné pipeline, generátory README a pracovné postupy statických stránok. Aspose.Cells FOSS for Python to umožňuje jednou metódou prostredníctvom workbook.save_as_markdown(): nie je potrebný Microsoft Office.

Poznámka: Aspose.Cells FOSS exportuje do XLSX, CSV, TSV, Markdown a JSON. Export do PDF nie je súčasťou knižnice FOSS.

Prečo exportovať Excel do Markdown s Aspose.Cells FOSS?

  1. Žiadna závislosť na Office: Konvertuje úplne v Pythone bez natívneho COM alebo inštalácie Office.
  2. Podpora v pamäti: Generuje reťazce Markdown bez akéhokoľvek diskového I/O pomocou MarkdownHandler.
  3. Prispôsobiteľný výstup: Konfigurujte správanie exportu prostredníctvom MarkdownSaveOptions.
  4. Priateľské k pipeline: Integrujte priamo do generátorov dokumentácie, statických stránok Hugo alebo pracovných tokov GitHub Actions.

Krok za krokom sprievodca

Krok 1: Nainštalujte Aspose.Cells FOSS pre Python

Nainštalujte knižnicu z PyPI pomocou pip:

pip install aspose-cells-foss

Overte inštaláciu:

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

Krok 2: Vytvorte zošit a naplňte údaje

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

Krok 3: Exportovať do Markdownu

Zavolajte workbook.save_as_markdown() s .md výstupnou cestou:

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

Výstup je štandardná tabuľka Markdown:

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

Krok 4: Prispôsobiť pomocou MarkdownSaveOptions

Použite MarkdownSaveOptions na ovládanie formátu výstupu:

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)

Predajte inštanciu MarkdownSaveOptions do save_as_markdown() na konfiguráciu.


Krok 5: Generovať Markdown v pamäti (bez vstupno‑výstupných operácií so súbormi)

Použite MarkdownHandler.save_markdown_to_string() na získanie Markdownu ako reťazca v Pythone:

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.

Krok 6: Načítať existujúci XLSX a exportovať do Markdown

from aspose.cells_foss import Workbook

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

Toto zachová všetky hodnoty buniek a základnú štruktúru. Poznámka: Export do Markdownu číta iba cell.value — bunky, ktoré obsahujú iba vzorec bez uložených hodnôt, sa v výstupe zobrazia prázdne. Knižnica nevyhodnocuje vzorce pri exporte. Aby sa zabezpečilo zobrazenie výsledkov vzorcov, najprv otvorte súbor v Exceli alebo LibreOffice (ktorý vyhodnotí a uloží výsledky vzorcov), uložte ho ako XLSX a potom znova exportujte.


Krok 7: Riešenie chýb

Zabaľte exporty do blokov try/except pre použitie v produkcii:

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

Bežné problémy a riešenia

1. Prázdny výstup Markdown

Cause: Hárka neobsahuje žiadne vyplnené bunky.
Fix: Potvrďte, že ws.cells["A1"].value je nastavené a nie None pred volaním save_as_markdown().

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

Cause: Balík nie je nainštalovaný alebo bol použitý nesprávny názov balíka.
Fix: Spustite pip install aspose-cells-foss. Import je from aspose.cells_foss import ... (podtržník, nie bodka).

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

Príčina: Nainštalovali ste nesprávny balík (aspose-cells-python namiesto aspose-cells-foss).
Oprava: pip install aspose-cells-foss a potvrďte from aspose.cells_foss import Workbook.

4. Problémy s kódovaním vo výstupnom súbore

Príčina: Zapisovanie reťazca Markdown do súboru bez špecifikovania kódovania UTF-8.
Oprava: Použite MarkdownHandler.save_markdown_to_string() a zapíšte explicitne:

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

Často kladené otázky

Môžem namiesto toho exportovať do PDF?

Nie. Export do PDF nie je k dispozícii v Aspose.Cells FOSS. Použite komerčný balík aspose-cells-python pre výstup PDF.

Aké vstupné formáty môžem načítať a potom exportovať do Markdownu?

Súbory XLSX a CSV je možné načítať pomocou Workbook("file.xlsx") a následne ich exportovať do Markdownu.

Ako exportovať iba jeden hárok, keď je viacero hárkov?

V predvolenom nastavení save_as_markdown() exportuje prvý pracovný hárok. Pre ďalšiu konfiguráciu odovzdajte inštanciu MarkdownSaveOptions.

Môžem to spustiť na Linuxe alebo macOS?

Áno. Knižnica beží na Windows, Linux a macOS bez akéhokoľvek špecifického nastavenia platformy.


Súvisiace zdroje:

 Slovenčina