Cách xuất Excel sang Markdown trong Python

Cách xuất Excel sang Markdown trong Python

Xuất dữ liệu Excel sang Markdown là một yêu cầu phổ biến cho các pipeline tài liệu, trình tạo README và quy trình làm việc của trang tĩnh. Aspose.Cells FOSS for Python biến việc này thành một thao tác một phương thức duy nhất thông qua workbook.save_as_markdown(): không cần Microsoft Office.

Lưu ý: Aspose.Cells FOSS xuất ra XLSX, CSV, TSV, Markdown và JSON. Xuất PDF không phải là một phần của thư viện FOSS.

Tại sao nên xuất Excel sang Markdown với Aspose.Cells FOSS?

  1. Không phụ thuộc vào Office: Chuyển đổi hoàn toàn trong Python mà không cần COM gốc hay cài đặt Office.
  2. Hỗ trợ trong bộ nhớ: Tạo chuỗi Markdown mà không cần I/O đĩa nào bằng cách sử dụng MarkdownHandler.
  3. Đầu ra có thể tùy chỉnh:Cấu hình hành vi xuất qua MarkdownSaveOptions.
  4. Thân thiện với pipeline: Tích hợp trực tiếp vào các công cụ tạo tài liệu, trang tĩnh Hugo, hoặc quy trình làm việc của GitHub Actions.

Hướng Dẫn Từng Bước

Bước 1: Cài đặt Aspose.Cells FOSS cho Python

Cài đặt thư viện từ PyPI bằng pip:

pip install aspose-cells-foss

Xác minh việc cài đặt:

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

Bước 2: Tạo một Sổ làm việc và Điền Dữ liệu

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

Bước 3: Xuất sang Markdown

Gọi workbook.save_as_markdown() với một .md đường dẫn đầu ra:

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

Kết quả là một bảng Markdown tiêu chuẩn:

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

Bước 4: Tùy chỉnh với MarkdownSaveOptions

Sử dụng MarkdownSaveOptions để kiểm soát định dạng đầu ra:

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)

Truyền một MarkdownSaveOptions đối tượng tới save_as_markdown() để cấu hình.


Bước 5: Tạo Markdown trong bộ nhớ (Không có I/O tệp)

Sử dụng MarkdownHandler.save_markdown_to_string() để lấy Markdown dưới dạng chuỗi 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.

Bước 6: Tải một tệp XLSX hiện có và xuất ra Markdown

from aspose.cells_foss import Workbook

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

Điều này giữ lại tất cả các giá trị ô và cấu trúc cơ bản. Lưu ý: Xuất Markdown đọc cell.value chỉ — các ô chỉ chứa công thức mà không có giá trị đã lưu sẽ hiển thị trống trong kết quả. Thư viện không tính toán công thức khi xuất. Để đảm bảo kết quả công thức xuất hiện, hãy mở tệp trong Excel hoặc LibreOffice trước (để chúng tính toán và lưu giá trị công thức), lưu lại dưới dạng XLSX, sau đó xuất lại.


Bước 7: Xử lý lỗi

Bao quanh các thao tác xuất bằng khối try/except cho môi trường sản xuất:

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

Các Vấn Đề Thường Gặp và Cách Khắc Phục

1. Empty Markdown output

Nguyên nhân: Bảng tính không có ô nào được điền dữ liệu. Khắc phục: Xác nhận ws.cells["A1"].value được đặt và không None trước khi gọi save_as_markdown().

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

Nguyên nhân: Gói chưa được cài đặt hoặc tên gói đã dùng không đúng. Sửa: Chạy pip install aspose-cells-foss. Việc nhập là from aspose.cells_foss import ... (gạch dưới, không phải dấu chấm).

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

Nguyên nhân: Bạn đã cài đặt gói sai (aspose-cells-python : thay vì aspose-cells-foss). : Sửa: pip install aspose-cells-foss : và xác nhận from aspose.cells_foss import Workbook.

4. Encoding issues in output file

: Nguyên nhân: Viết chuỗi Markdown vào tệp mà không chỉ định mã hoá UTF-8. : Sửa: Sử dụng MarkdownHandler.save_markdown_to_string() : và ghi một cách rõ ràng:

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

Câu hỏi thường gặp

Tôi có thể xuất ra PDF thay thế không?

: Không. Xuất PDF không khả dụng trong Aspose.Cells FOSS. Sử dụng phiên bản thương mại aspose-cells-python gói cho xuất PDF.

Tôi có thể tải các định dạng đầu vào nào và sau đó xuất ra Markdown?

Các tệp XLSX và CSV có thể được tải bằng Workbook("file.xlsx") và sau đó xuất ra Markdown.

Làm thế nào để tôi chỉ xuất một sheet khi có nhiều sheet?

Mặc định, save_as_markdown() xuất worksheet đầu tiên. Truyền một MarkdownSaveOptions đối tượng để cấu hình bổ sung.

Tôi có thể chạy nó trên Linux hoặc macOS không?

Có. Thư viện chạy trên Windows, Linux và macOS mà không cần thiết lập đặc thù cho nền tảng.


Tài nguyên liên quan:

 Tiếng Việt