Como Exportar Excel para Markdown em Python

Como Exportar Excel para Markdown em Python

Exportar dados do Excel para Markdown é uma necessidade comum em pipelines de documentação, geradores de README e fluxos de trabalho de sites estáticos. Aspose.Cells FOSS for Python torna isso uma operação de método único via workbook.save_as_markdown(): sem necessidade do Microsoft Office.

Nota: Aspose.Cells FOSS exporta para XLSX, CSV, TSV, Markdown e JSON. A exportação para PDF não faz parte da biblioteca FOSS.

Por que Exportar Excel para Markdown com Aspose.Cells FOSS?

  1. Sem dependência do Office: Converte totalmente em Python sem COM nativo ou instalação do Office.
  2. Suporte em memória: Gere strings Markdown sem qualquer I/O de disco usando MarkdownHandler.
  3. Saída personalizável: Configure o comportamento de exportação via MarkdownSaveOptions.
  4. Amigável a pipelines: Integre diretamente em geradores de documentação, sites estáticos Hugo ou fluxos de trabalho do GitHub Actions.

Guia passo a passo

Etapa 1: Instale o Aspose.Cells FOSS para Python

Instale a biblioteca do PyPI usando pip:

pip install aspose-cells-foss

Verifique a instalação:

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

Etapa 2: Criar uma Pasta de Trabalho e Preencher Dados

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

Passo 3: Exportar para Markdown

Chame workbook.save_as_markdown() com um caminho de saída .md:

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

A saída é uma tabela Markdown padrão:

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

Etapa 4: Personalizar com MarkdownSaveOptions

MarkdownSaveOptions⟦/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)

Passe uma instância MarkdownSaveOptions para save_as_markdown() para configuração.


Etapa 5: Gerar Markdown na Memória (Sem I/O de Arquivo)

Use MarkdownHandler.save_markdown_to_string() para obter o Markdown como uma 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.

Passo 6: Carregar um XLSX existente e exportar para Markdown

from aspose.cells_foss import Workbook

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

Isso preserva todos os valores das células e a estrutura básica. Nota: A exportação em Markdown lê cell.value apenas — células que contêm apenas uma fórmula sem valor em cache aparecerão em branco na saída. A biblioteca não avalia fórmulas no momento da exportação. Para garantir que os resultados das fórmulas apareçam, abra o arquivo no Excel ou LibreOffice primeiro (que avalia e armazena em cache os resultados das fórmulas), salve como XLSX e, em seguida, reexporte.


Etapa 7: Tratamento de Erros

Envolva as exportações em blocos try/except para uso em produção:

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 Comuns e Soluções

1. Saída Markdown vazia

Causa: A planilha não tem células preenchidas.
Correção: Confirme que ws.cells["A1"].value está definido e não None antes de chamar save_as_markdown().

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

Cause: O pacote não está instalado ou o nome do pacote usado está errado.
Fix: Execute pip install aspose-cells-foss. A importação é from aspose.cells_foss import ... (sublinhado, não ponto).

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

Causa: Você instalou o pacote errado (aspose-cells-python em vez de aspose-cells-foss).
Correção: pip install aspose-cells-foss e confirme from aspose.cells_foss import Workbook.

4. Problemas de codificação no arquivo de saída

Causa: Escrever a string Markdown em um arquivo sem especificar a codificação UTF-8.
Correção: Use MarkdownHandler.save_markdown_to_string() e escreva explicitamente:

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

Perguntas Frequentes

Posso exportar para PDF em vez disso?

Não. A exportação de PDF não está disponível no Aspose.Cells FOSS. Use o pacote comercial aspose-cells-python para saída de PDF.

Quais formatos de entrada posso carregar e depois exportar para Markdown?

Arquivos XLSX e CSV podem ser carregados com Workbook("file.xlsx") e então exportados para Markdown.

Como exportar apenas uma planilha quando há várias planilhas?

Por padrão, save_as_markdown() exporta a primeira planilha. Passe uma instância MarkdownSaveOptions para configuração adicional.

Posso executar isso no Linux ou macOS?

Sim. A biblioteca funciona no Windows, Linux e macOS sem nenhuma configuração específica de plataforma.


Recursos Relacionados:

 Português