Cómo exportar Excel a Markdown en Python

Cómo exportar Excel a Markdown en Python

Exportar datos de Excel a Markdown es un requisito común para pipelines de documentación, generadores de README y flujos de trabajo de sitios estáticos. Aspose.Cells FOSS for Python lo convierte en una operación de un solo método mediante workbook.save_as_markdown(): no se requiere Microsoft Office.

Nota: Aspose.Cells FOSS exporta a XLSX, CSV, TSV, Markdown y JSON. La exportación a PDF no forma parte de la biblioteca FOSS.

¿Por qué exportar Excel a Markdown con Aspose.Cells FOSS?

  1. Sin dependencia de Office: Convierte completamente en Python sin COM nativo ni instalación de Office.
  2. Soporte en memoria: Genera cadenas Markdown sin ninguna E/S de disco usando MarkdownHandler.
  3. Salida personalizable: Configura el comportamiento de exportación mediante MarkdownSaveOptions.
  4. Amigable con pipelines: Integra directamente en generadores de documentación, sitios estáticos Hugo o flujos de trabajo de GitHub Actions.

Guía paso a paso

Paso 1: Instale Aspose.Cells FOSS para Python

Instale la biblioteca desde PyPI usando pip:

pip install aspose-cells-foss

Verifique la instalación:

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

Paso 2: Cree un libro de trabajo y rellene los datos

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

Paso 3: Exportar a Markdown

Llamar workbook.save_as_markdown() con un .md ruta de salida:

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

La salida es una tabla Markdown estándar:

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

Paso 4: Personalizar con MarkdownSaveOptions

Usar MarkdownSaveOptions para controlar el formato de salida:

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)

Pasa un MarkdownSaveOptions instancia a save_as_markdown() para configuración.


Paso 5: Generar Markdown en memoria (sin E/S de archivos)

Usar MarkdownHandler.save_markdown_to_string() para obtener el Markdown como una cadena 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.

Paso 6: Cargar un XLSX existente y exportar a Markdown

from aspose.cells_foss import Workbook

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

Esto preserva todos los valores de celda y la estructura básica. Nota: La exportación a Markdown lee cell.value solo — las celdas que contienen únicamente una fórmula sin valor almacenado aparecerán en blanco en la salida. La biblioteca no evalúa las fórmulas al exportar. Para garantizar que los resultados de las fórmulas aparezcan, abra el archivo en Excel o LibreOffice primero (lo que evalúa y almacena los resultados de las fórmulas), guárdelo como XLSX y luego vuelva a exportar.


Paso 7: Manejo de errores

Envuelva las exportaciones en bloques try/except para uso en producción:

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

Problemas comunes y soluciones

1. Empty Markdown output

Causa: La hoja de cálculo no tiene celdas pobladas. Solución: Confirmar ws.cells["A1"].value está configurado y no None antes de llamar save_as_markdown().

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

Causa: El paquete no está instalado o se usó un nombre de paquete incorrecto. Solución: Ejecutar pip install aspose-cells-foss. La importación es from aspose.cells_foss import ... (guion bajo, no punto).

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

Causa: Instalaste el paquete incorrecto (aspose-cells-python en lugar de aspose-cells-foss). Solución: pip install aspose-cells-foss y confirma from aspose.cells_foss import Workbook.

4. Encoding issues in output file

Causa: Escribir la cadena Markdown a un archivo sin especificar la codificación UTF-8. Solución: Usar MarkdownHandler.save_markdown_to_string() y escribir explícitamente:

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

Preguntas frecuentes

¿Puedo exportar a PDF en su lugar?

No. La exportación a PDF no está disponible en Aspose.Cells FOSS. Use la versión comercial aspose-cells-python paquete para la salida PDF.

¿Qué formatos de entrada puedo cargar y luego exportar a Markdown?

Los archivos XLSX y CSV pueden cargarse con Workbook("file.xlsx") y luego exportarse a Markdown.

¿Cómo exporto solo una hoja cuando hay varias hojas?

Por defecto, save_as_markdown() exporta la primera hoja de cálculo. Pase un MarkdownSaveOptions instancia para configuración adicional.

¿Puedo ejecutar esto en Linux o macOS?

Sí. La biblioteca funciona en Windows, Linux y macOS sin ninguna configuración específica de la plataforma.


Recursos relacionados:

 Español