چگونه 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 نیست.

چرا اکسل را به مارک‌داون با Aspose.Cells FOSS صادر کنیم؟

  1. بدون وابستگی به Office: به‌صورت کامل در پایتون تبدیل می‌کند بدون نیاز به COM بومی یا نصب Office.
  2. پشتیبانی در حافظه: رشته‌های Markdown را بدون هیچ ورودی/خروجی دیسک با استفاده از MarkdownHandler تولید می‌کند.
  3. خروجی قابل تنظیم: رفتار صادرات را از طریق MarkdownSaveOptions پیکربندی کنید.
  4. دوستدار خط لوله: مستقیماً در ژنراتورهای مستندات، سایت‌های ایستاتیک Hugo یا جریان‌های کاری GitHub Actions یکپارچه شود.

راهنمای گام به گام

مرحله ۱: نصب Aspose.Cells FOSS برای Python

کتابخانه را از PyPI با استفاده از pip نصب کنید:

pip install aspose-cells-foss

نصب را تأیید کنید:

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

مرحله ۲: ایجاد یک Workbook و پر کردن داده‌ها

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 در حافظه (بدون File I/O)

از MarkdownHandler.save_markdown_to_string() برای دریافت Markdown به‌عنوان رشتهٔ پایتون استفاده کنید:

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 ذخیره کنید، سپس دوباره خروجی بگیرید.


مرحله ۷: مدیریت خطا

صادرات را در بلوک‌های 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. خروجی خالی مارک‌داون

Cause: برگه کاری هیچ سلولی پر نشده است.
Fix: قبل از فراخوانی save_as_markdown()، تأیید کنید ws.cells["A1"].value تنظیم شده و None نیست.

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. مشکلات رمزگذاری در فایل خروجی

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 موجود نیست. برای خروجی PDF از بسته تجاری aspose-cells-python استفاده کنید.

کدام فرمت‌های ورودی را می‌توانم بارگذاری کنم و سپس به Markdown صادر کنم؟

فایل‌های XLSX و CSV می‌توانند با Workbook("file.xlsx") بارگذاری شوند و سپس به Markdown صادر شوند.

چگونه می‌توانم فقط یک شیت را صادر کنم وقتی چندین شیت وجود دارد؟

به‌طور پیش‌فرض، save_as_markdown() اولین برگه کاری را صادر می‌کند. برای پیکربندی اضافی، یک نمونه MarkdownSaveOptions را پاس دهید.

آیا می‌توانم این را روی لینوکس یا macOS اجرا کنم؟

بله. کتابخانه بر روی ویندوز، لینوکس و macOS بدون نیاز به تنظیمات خاص پلتفرم اجرا می‌شود.


منابع مرتبط:

 فارسی