Cara Mengekspor Excel ke Markdown dengan Python

Cara Mengekspor Excel ke Markdown dengan Python

Mengekspor data Excel ke Markdown adalah kebutuhan umum untuk pipeline dokumentasi, generator README, dan alur kerja situs statis. Aspose.Cells FOSS for Python membuat ini menjadi operasi satu metode melalui workbook.save_as_markdown(): tidak memerlukan Microsoft Office.

Catatan: Aspose.Cells FOSS mengekspor ke XLSX, CSV, TSV, Markdown, dan JSON. Ekspor PDF bukan bagian dari perpustakaan FOSS.

Mengapa Mengekspor Excel ke Markdown dengan Aspose.Cells FOSS?

  1. Tidak bergantung pada Office: Mengonversi sepenuhnya di Python tanpa COM native atau instalasi Office.
  2. Dukungan dalam memori: Menghasilkan string Markdown tanpa I/O disk menggunakan MarkdownHandler.
  3. Output yang dapat disesuaikan: Mengonfigurasi perilaku ekspor melalui MarkdownSaveOptions.
  4. Ramahan pipeline: Mengintegrasikan langsung ke generator dokumentasi, situs statis Hugo, atau alur kerja GitHub Actions.

Panduan Langkah-demi-Langkah

Langkah 1: Instal Aspose.Cells FOSS untuk Python

Instal perpustakaan dari PyPI menggunakan pip:

pip install aspose-cells-foss

Verifikasi instalasi:

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

Langkah 2: Buat Workbook 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: Ekspor ke Markdown

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

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

Outputnya adalah tabel Markdown standar:

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

Langkah 4: Sesuaikan dengan 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)

Berikan sebuah instance MarkdownSaveOptions ke save_as_markdown() untuk konfigurasi.


Langkah 5: Hasilkan Markdown dalam Memori (Tanpa I/O File)

Gunakan MarkdownHandler.save_markdown_to_string() untuk mendapatkan Markdown sebagai string 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 yang Ada dan Ekspor 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 mempertahankan semua nilai sel dan struktur dasar. Catatan: Ekspor Markdown hanya membaca cell.value — sel yang hanya berisi rumus tanpa nilai yang di‑cache akan muncul kosong dalam output. Perpustakaan tidak mengevaluasi rumus saat ekspor. Untuk memastikan hasil rumus muncul, buka file di Excel atau LibreOffice terlebih dahulu (yang mengevaluasi dan menyimpan nilai rumus), simpan sebagai XLSX, lalu ekspor kembali.


Langkah 7: Penanganan Kesalahan

Bungkus ekspor 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 Solusi

1. Output Markdown kosong

Cause: Lembar kerja tidak memiliki sel yang terisi.
Fix: Pastikan ws.cells["A1"].value sudah diatur dan bukan None sebelum memanggil save_as_markdown().

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

Cause: Paket tidak terpasang atau nama paket yang salah digunakan.
Fix: Jalankan pip install aspose-cells-foss. Imporannya adalah from aspose.cells_foss import ... (garis bawah, bukan titik).

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

Cause: Anda menginstal paket yang salah (aspose-cells-python alih-alih aspose-cells-foss).
Fix: pip install aspose-cells-foss dan konfirmasi from aspose.cells_foss import Workbook.

4. Masalah pengkodean dalam file output

Cause: Menulis string Markdown ke file tanpa menentukan encoding UTF-8.
Fix: Gunakan MarkdownHandler.save_markdown_to_string() dan tulis secara eksplisit:

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

Pertanyaan yang Sering Diajukan

Bisakah saya mengekspor ke PDF sebagai gantinya?

Tidak. Ekspor PDF tidak tersedia di Aspose.Cells FOSS. Gunakan paket komersial aspose-cells-python untuk output PDF.

Format input apa yang dapat saya muat dan kemudian diekspor ke Markdown?

File XLSX dan CSV dapat dimuat dengan Workbook("file.xlsx") dan kemudian diekspor ke Markdown.

Bagaimana cara mengekspor hanya satu lembar ketika ada beberapa lembar?

Secara default, save_as_markdown() mengekspor lembar kerja pertama. Berikan sebuah instance MarkdownSaveOptions untuk konfigurasi tambahan.

Apakah saya dapat menjalankannya di Linux atau macOS?

Ya. Perpustakaan berjalan di Windows, Linux, dan macOS tanpa pengaturan khusus platform apa pun.


Sumber Daya Terkait:

 Bahasa Indonesia