Cara Mengeksport Excel ke Markdown dalam Python

Cara Mengeksport Excel ke Markdown dalam Python

Mengeksport data Excel ke Markdown adalah keperluan biasa untuk saluran dokumentasi, penjana README, dan aliran kerja laman statik. Aspose.Cells FOSS for Python menjadikan ini operasi satu kaedah melalui workbook.save_as_markdown(): tidak memerlukan Microsoft Office.

Nota: Aspose.Cells FOSS mengeksport ke XLSX, CSV, TSV, Markdown, dan JSON. Eksport PDF bukan sebahagian daripada perpustakaan FOSS.

Mengapa Mengeksport Excel ke Markdown dengan Aspose.Cells FOSS?

  1. Tiada kebergantungan Office: Menukar sepenuhnya dalam Python tanpa COM asli atau pemasangan Office.
  2. Sokongan dalam memori: Menjana rentetan Markdown tanpa sebarang I/O cakera menggunakan MarkdownHandler.
  3. Output boleh disesuaikan: Konfigurasikan kelakuan eksport melalui MarkdownSaveOptions.
  4. Mesra saluran paip: Integrasikan secara langsung ke dalam penjana dokumentasi, laman statik Hugo, atau aliran kerja GitHub Actions.

Panduan Langkah demi Langkah

Langkah 1: Pasang Aspose.Cells FOSS untuk Python

Pasang perpustakaan dari PyPI menggunakan pip:

pip install aspose-cells-foss

Sahkan pemasangan:

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

Langkah 2: Cipta Buku Kerja dan Isi Data

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

Langkah 3: Eksport ke Markdown

Panggil workbook.save_as_markdown() dengan laluan output .md:

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

Output ialah jadual Markdown standard:

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

Langkah 4: Sesuaikan dengan MarkdownSaveOptions

MarkdownSaveOptions Gunakan MarkdownSaveOptions untuk mengawal format output: ⟦/PH_0017⟧

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)

Hantar satu contoh MarkdownSaveOptions kepada save_as_markdown() untuk konfigurasi.


Langkah 5: Hasilkan Markdown Dalam Memori (Tiada I/O Fail)

Gunakan MarkdownHandler.save_markdown_to_string() untuk mendapatkan Markdown sebagai rentetan 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.

Langkah 6: Muat XLSX Sedia Ada dan Eksport ke Markdown

from aspose.cells_foss import Workbook

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

Ini mengekalkan semua nilai sel dan struktur asas. Nota: Eksport Markdown hanya membaca cell.value — sel yang hanya mengandungi formula tanpa nilai yang disimpan akan kelihatan kosong dalam output. Perpustakaan tidak menilai formula semasa eksport. Untuk memastikan hasil formula muncul, buka fail tersebut dalam Excel atau LibreOffice terlebih dahulu (yang menilai dan menyimpan hasil formula), simpan sebagai XLSX, kemudian eksport semula.


Langkah 7: Pengendalian Ralat

Balut eksport dalam blok try/except untuk penggunaan produksi:

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

Masalah Umum dan Penyelesaian

1. Output Markdown kosong

Cause: Lembaran kerja tidak mempunyai sel yang diisi.
Fix: Sahkan ws.cells["A1"].value telah ditetapkan dan bukan None sebelum memanggil save_as_markdown().

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

Cause: Pakej tidak dipasang atau nama pakej yang salah digunakan.
Fix: Jalankan pip install aspose-cells-foss. Importnya ialah from aspose.cells_foss import ... (garis bawah, bukan titik).

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

Punca: Anda memasang pakej yang salah (aspose-cells-python bukannya aspose-cells-foss).
Pembaikan: pip install aspose-cells-foss dan sahkan from aspose.cells_foss import Workbook.

4. Masalah pengekodan dalam fail output

Punca: Menulis rentetan Markdown ke fail tanpa menentukan pengekodan UTF-8.
Pembaikan: Gunakan MarkdownHandler.save_markdown_to_string() dan tulis secara eksplisit:

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

Soalan Lazim

Bolehkah saya mengeksport ke PDF sebagai gantinya?

Tidak. Eksport PDF tidak tersedia dalam Aspose.Cells FOSS. Gunakan pakej komersial aspose-cells-python untuk output PDF.

Format input mana yang boleh saya muat dan kemudian eksport ke Markdown?

Fail XLSX dan CSV boleh dimuatkan dengan Workbook("file.xlsx") dan kemudian dieksport ke Markdown.

Bagaimana saya mengeksport hanya satu helaian apabila terdapat banyak helaian?

Secara lalai, save_as_markdown() mengeksport lembar kerja pertama. Hantar satu contoh MarkdownSaveOptions untuk konfigurasi tambahan.

Bolehkah saya menjalankannya pada Linux atau macOS?

Ya. Pustaka ini berjalan pada Windows, Linux, dan macOS tanpa sebarang persediaan khusus platform.


Sumber Berkaitan:

 Bahasa Melayu