Як експортувати Excel у Markdown за допомогою Python

Як експортувати Excel у Markdown за допомогою Python

Експорт даних Excel у Markdown є поширеною вимогою для конвеєрів документації, генераторів README та робочих процесів статичних сайтів. Aspose.Cells FOSS for Python робить це однометодною операцією через workbook.save_as_markdown(): без необхідності Microsoft Office.

Примітка: Aspose.Cells FOSS експортує у формати XLSX, CSV, TSV, Markdown та JSON. Експорт у PDF не входить до складу бібліотеки FOSS.

Чому експортувати Excel у Markdown за допомогою Aspose.Cells FOSS?

  1. No Office dependency: Перетворює повністю в Python без нативного COM або встановлення Office.
  2. In-memory support: Генерує рядки Markdown без будь‑якого дискового вводу/виводу, використовуючи MarkdownHandler.
  3. Customizable output: Налаштовуйте поведінку експорту за допомогою MarkdownSaveOptions.
  4. Pipeline-friendly: Інтегруйте безпосередньо в генератори документації, статичні сайти Hugo або робочі процеси GitHub Actions.

Покроковий посібник

Крок 1: Встановити Aspose.Cells FOSS для Python

Встановіть бібліотеку з PyPI за допомогою pip:

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 у пам’яті (без файлового вводу/виводу)

Використайте 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

Причина: Робочий лист не має заповнених клітинок.
Виправлення: Переконайтеся, що ws.cells["A1"].value встановлено, а None — ні, перед викликом save_as_markdown().

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'

Cause: Ви встановили неправильний пакет (aspose-cells-python замість aspose-cells-foss).
Fix: pip install aspose-cells-foss і підтвердіть from aspose.cells_foss import Workbook.

4. Проблеми кодування у вихідному файлі

Cause: Запис рядка Markdown у файл без вказання кодування UTF-8.
Fix: Використайте 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 без будь‑якої специфічної для платформи налаштування.


Пов’язані ресурси:

 Українська