Как да експортирате 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. Без зависимост от Office: Преобразува изцяло в Python без нативен COM или инсталация на Office.
  2. Поддръжка в паметта: Генерирайте Markdown низове без каквито и да е операции с диск, използвайки MarkdownHandler.
  3. Персонализируем изход: Конфигурирайте поведението на експорта чрез MarkdownSaveOptions.
  4. Подходящ за конвейери: Интегрирайте директно в генератори на документация, статични сайтове 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 в паметта (без файлов I/O)

Използвайте 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'

Причина: Пакетът не е инсталиран или е използвано грешно име на пакет.
Поправка: Изпълнете pip install aspose-cells-foss. Импортът е from aspose.cells_foss import ... (подчертаване, а не точка).

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

Причина: Инсталирахте грешния пакет (aspose-cells-python вместо aspose-cells-foss).
Решение: pip install aspose-cells-foss и потвърдете from aspose.cells_foss import Workbook.

4. Проблеми с кодирането в изходния файл

Причина: Записване на низ в Markdown във файл без задаване на кодиране UTF-8.
Поправка: Използвайте 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 без никаква специфична за платформата настройка.


Свързани ресурси:

 Български