Как экспортировать 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?
- Отсутствие зависимости от Office: Полностью преобразует в Python без нативного COM или установки Office.
- Поддержка в памяти: Генерировать строки Markdown без какого-либо ввода‑вывода на диск, используя
MarkdownHandler. - Настраиваемый вывод: Настраивать поведение экспорта через
MarkdownSaveOptions. - Удобно для конвейеров: Интегрировать напрямую в генераторы документации, статические сайты 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
Cause: Рабочий лист не содержит заполненных ячеек.
Fix: Подтвердите, что 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 без какой‑либо специфической настройки платформы.
Связанные ресурсы:
- Aspose.Cells FOSS for Python: Руководство разработчика
- Экспорт формата электронных таблиц
- Начало работы / Установка
- Справочник API:
MarkdownHandler,MarkdownSaveOptions,Workbook.save_as_markdown() - База знаний: Больше руководств (диаграммы, стилизация, загрузка)
- Обзор продукта: Сводка функций и возможностей
- Блог: Представляем Aspose.Cells FOSS: Обзор библиотеки и быстрый старт