Jak wyeksportować Excel do Markdown w Pythonie

Jak wyeksportować Excel do Markdown w Pythonie

Eksportowanie danych z Excela do Markdown jest powszechnym wymogiem w pipeline’ach dokumentacji, generatorach README oraz w przepływach pracy statycznych witryn. Aspose.Cells FOSS for Python umożliwia to jako jedną metodę za pomocą workbook.save_as_markdown(): nie wymaga Microsoft Office.

Uwaga: Aspose.Cells FOSS eksportuje do XLSX, CSV, TSV, Markdown i JSON. Eksport do PDF nie jest częścią biblioteki FOSS.

Dlaczego eksportować Excel do Markdown przy użyciu Aspose.Cells FOSS?

  1. Brak zależności od Office: Konwertuje w całości w Pythonie bez natywnego COM ani instalacji Office.
  2. Obsługa w pamięci: Generuj ciągi Markdown bez żadnego I/O na dysku przy użyciu MarkdownHandler.
  3. Konfigurowalny wynik: Konfiguruj zachowanie eksportu za pomocą MarkdownSaveOptions.
  4. Przyjazny dla pipeline: Integruj bezpośrednio z generatorami dokumentacji, statycznymi stronami Hugo lub przepływami pracy GitHub Actions.

Przewodnik krok po kroku

Krok 1: Zainstaluj Aspose.Cells FOSS dla Pythona

Zainstaluj bibliotekę z PyPI przy użyciu pip:

pip install aspose-cells-foss

Sprawdź instalację:

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

Krok 2: Utwórz skoroszyt i wypełnij dane

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: Eksportuj do Markdown

Wywołaj workbook.save_as_markdown() z .md ścieżką wyjściową:

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

Wyjściem jest standardowa tabela Markdown:

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

Krok 4: Dostosuj przy użyciu MarkdownSaveOptions

Użyj MarkdownSaveOptions do kontrolowania formatu wyjścia:

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)

Przekaż instancję MarkdownSaveOptions do save_as_markdown() w celu konfiguracji.


Krok 5: Generowanie Markdown w pamięci (bez operacji na plikach)

Użyj MarkdownHandler.save_markdown_to_string(), aby uzyskać Markdown jako ciąg znaków w Pythonie:

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: Załaduj istniejący plik XLSX i wyeksportuj do Markdown

from aspose.cells_foss import Workbook

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

To zachowuje wszystkie wartości komórek i podstawową strukturę. Uwaga: Eksport Markdown odczytuje tylko cell.value — komórki, które zawierają wyłącznie formułę bez zapisanego wyniku, będą wyświetlane jako puste w wyniku. Biblioteka nie ocenia formuł w czasie eksportu. Aby zapewnić wyświetlanie wyników formuł, najpierw otwórz plik w Excelu lub LibreOffice (które oceniają i zapisują wyniki formuł), zapisz jako XLSX, a następnie wyeksportuj ponownie.


Krok 7: Obsługa błędów

Opakuj eksporty w bloki try/except do użytku produkcyjnego:

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

Typowe problemy i rozwiązania

1. Pusty wynik Markdown

Cause: Arkusz nie zawiera wypełnionych komórek.
Fix: Potwierdź, że ws.cells["A1"].value jest ustawiony i nie jest None przed wywołaniem save_as_markdown().

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

Cause: Pakiet nie jest zainstalowany lub użyto niewłaściwej nazwy pakietu.
Fix: Uruchom pip install aspose-cells-foss. Import to from aspose.cells_foss import ... (podkreślenie, a nie kropka).

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

Przyczyna: Zainstalowałeś niewłaściwy pakiet (aspose-cells-python zamiast aspose-cells-foss).
Rozwiązanie: pip install aspose-cells-foss i potwierdź from aspose.cells_foss import Workbook.

4. Problemy z kodowaniem w pliku wyjściowym

Przyczyna: Zapisywanie ciągu Markdown do pliku bez określenia kodowania UTF-8.
Rozwiązanie: Użyj MarkdownHandler.save_markdown_to_string() i zapisz jawnie:

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

Najczęściej zadawane pytania

Czy mogę wyeksportować do PDF zamiast tego?

Nie. Eksport do PDF nie jest dostępny w Aspose.Cells FOSS. Użyj komercyjnego pakietu aspose-cells-python do wyjścia PDF.

Jakie formaty wejściowe mogę wczytać, a następnie wyeksportować do Markdown?

Pliki XLSX i CSV można załadować przy użyciu Workbook("file.xlsx"), a następnie wyeksportować do Markdown.

Jak wyeksportować tylko jeden arkusz, gdy jest ich wiele?

Domyślnie save_as_markdown() eksportuje pierwszy arkusz. Przekaż instancję MarkdownSaveOptions w celu dodatkowej konfiguracji.

Czy mogę uruchomić to na Linuxie lub macOS?

Tak. Biblioteka działa na systemach Windows, Linux i macOS bez żadnej specyficznej konfiguracji platformy.


Powiązane zasoby:

 Polski