Como salvar planilhas como CSV em Python

Como salvar planilhas como CSV em Python

Problema

Salve uma pasta de trabalho do Excel (.xlsx) como arquivo CSV usando Aspose.Cells FOSS em Python. Carregue a pasta de trabalho com Workbook(), em seguida chame save_as_csv() para gravar a planilha ativa em um arquivo de valores separados por vírgulas. Opcionalmente, passe um objeto CSVSaveOptions para controlar o delimitador, a codificação e o comportamento de aspas.

Pré-requisitos

Para salvar planilhas como CSV usando Aspose.Cells FOSS em Python, certifique-se de que seu ambiente atenda aos seguintes requisitos.

  • Python 3.7 ou posterior instalado
  • Instale o Aspose.Cells FOSS via pip install aspose-cells-foss>=26.3.1
  • Importe a biblioteca usando from aspose.cells_foss import Workbook
  • Conhecimento básico de manipulação de arquivos em Python

Passos para salvar

Passo 1: Instalar a biblioteca

Instale o Aspose.Cells FOSS a partir do PyPI. Nenhum arquivo de licença é necessário para uso FOSS.

pip install aspose-cells-foss

Passo 2: Carregar a pasta de trabalho

Instancie Workbook com o caminho para um arquivo .xlsx existente. O construtor aceita um parâmetro opcional password para pastas de trabalho protegidas.

from aspose.cells_foss import Workbook

workbook = Workbook("input.xlsx")

Para trabalhar com uma pasta de trabalho completamente nova, omita o caminho do arquivo:

from aspose.cells_foss import Workbook

workbook = Workbook()
worksheet = workbook.worksheets[0]

# Populate some cells
worksheet.cells["A1"].value = "Product"
worksheet.cells["B1"].value = "Price"
worksheet.cells["A2"].value = "Widget"
worksheet.cells["B2"].value = 9.99
worksheet.cells["A3"].value = "Gadget"
worksheet.cells["B3"].value = 24.95

Passo 3: Salvar a planilha ativa como CSV

Chame Workbook.save_as_csv() com o caminho de saída desejado. O método grava a primeira planilha (ativa) por padrão.

workbook.save_as_csv("output.csv")

Alternativamente, use o método genérico Workbook.save() — o Aspose.Cells FOSS infere o formato CSV a partir da extensão .csv:

workbook.save("output.csv")

Ambas as chamadas produzem saída idêntica quando nenhuma opção personalizada é necessária.

Passo 4: Salvar com opções CSV

Workbook.save_as_csv() aceita uma instância opcional de CSVSaveOptions como segundo argumento. Instancie CSVSaveOptions a partir de aspose.cells_foss.csv_handler e passe-a diretamente para controlar o comportamento de exportação, como escolher um delimitador ou codificação não padrão.

from aspose.cells_foss import Workbook
from aspose.cells_foss.csv_handler import CSVSaveOptions

workbook = Workbook("input.xlsx")

# Create options instance — configure attributes per your environment's needs
options = CSVSaveOptions()

workbook.save_as_csv("output_custom.csv", options)

Quando nenhum CSVSaveOptions é passado, save_as_csv() usa os padrões incorporados da biblioteca (delimitador vírgula, codificação UTF-8). Passe o objeto de opções sempre que precisar sobrescrever esses padrões programaticamente.

Passo 5: Exportar uma planilha específica

Quando uma pasta de trabalho contém várias planilhas, a planilha ativa é exportada. Use Workbook.set_active_worksheet() para escolher qual planilha exportar antes de salvar.

from aspose.cells_foss import Workbook

workbook = Workbook("multi_sheet.xlsx")

# Export the second worksheet (index 1)
workbook.set_active_worksheet(1)
workbook.save_as_csv("sheet2_output.csv")

Para exportar cada planilha para seu próprio arquivo CSV, itere sobre workbook.worksheets:

from aspose.cells_foss import Workbook

workbook = Workbook("multi_sheet.xlsx")

for index in range(len(workbook.worksheets)):
    ws = workbook.get_worksheet_by_index(index)
    workbook.set_active_worksheet(index)
    workbook.save_as_csv(f"sheet_{ws.name}.csv")

Exemplo completo

O seguinte exemplo independente cria uma pasta de trabalho, a preenche com dados de amostra e a salva tanto como CSV padrão quanto como CSV delimitado por ponto e vírgula.

from aspose.cells_foss import Workbook
from aspose.cells_foss.csv_handler import CSVSaveOptions

# Create workbook and populate data
workbook = Workbook()
worksheet = workbook.worksheets[0]

headers = ["Name", "Department", "Salary"]
rows = [
    ["Alice", "Engineering", 95000],
    ["Bob",   "Marketing",   72000],
    ["Carol", "Finance",     81000],
]

for col, header in enumerate(headers):
    col_letter = chr(ord("A") + col)
    worksheet.cells[f"{col_letter}1"].value = header

for row_idx, row in enumerate(rows, start=2):
    for col_idx, val in enumerate(row):
        col_letter = chr(ord("A") + col_idx)
        worksheet.cells[f"{col_letter}{row_idx}"].value = val

# Save as standard CSV (default options)
workbook.save_as_csv("employees.csv")

# Save with explicit CSVSaveOptions instance
options = CSVSaveOptions()
workbook.save_as_csv("employees_custom.csv", options)

print("CSV files written successfully.")

Problemas comuns

Arquivo de saída vazio

Se o CSV de saída estiver vazio ou contiver apenas linhas em branco, verifique se os valores das células foram atribuídos antes de chamar save_as_csv(). O método exporta a planilha ativa — confirme que a planilha correta está ativa usando workbook.get_active_worksheet().

Problemas de codificação (caracteres distorcidos)

Ao abrir um CSV no Excel e ver caracteres corrompidos, verifique a codificação usada durante a exportação. O Aspose.Cells FOSS usa UTF-8 por padrão; o Excel no Windows pode esperar uma marca de ordem de bytes (BOM) para reconhecer a codificação corretamente. Configure a codificação via CSVSaveOptions e passe-a para save_as_csv().

Pastas de trabalho com várias planilhas exportam apenas uma planilha

CSV é um formato de tabela única; apenas uma planilha pode ser salva por arquivo. Exporte cada planilha individualmente usando set_active_worksheet(index) conforme mostrado no Passo 5.

Células contendo o delimitador

Se o valor de uma célula contiver o caractere delimitador (por ex., uma vírgula em saída delimitada por vírgulas), o Aspose.Cells FOSS automaticamente coloca o valor entre aspas durante a exportação. Use CSVSaveOptions para personalizar o comportamento de aspas se necessário.

Perguntas frequentes

P: workbook.save("output.csv") produz o mesmo resultado que save_as_csv()?

Sim. Workbook.save() inspeciona a extensão do arquivo e delega para save_as_csv() quando a extensão é .csv. Chame save_as_csv() diretamente e passe uma instância de CSVSaveOptions quando precisar personalizar a exportação além dos padrões incorporados.

P: Posso exportar para uma string CSV em vez de um arquivo?

Sim. Use CSVHandler.save_csv_to_string(workbook, options) de aspose.cells_foss.csv_handler. Isso retorna o conteúdo CSV como uma string Python, que você pode gravar em um stream, enviar ou processar posteriormente sem tocar no sistema de arquivos.

from aspose.cells_foss import Workbook
from aspose.cells_foss.csv_handler import CSVHandler, CSVSaveOptions

workbook = Workbook("input.xlsx")
csv_string = CSVHandler().save_csv_to_string(workbook, CSVSaveOptions())
print(csv_string)

P: Como recarrego um CSV na pasta de trabalho após salvar?

Use Workbook.load_csv("file.csv") em uma instância existente de Workbook, ou chame a função de conveniência load_csv_workbook("file.csv") de aspose.cells_foss.csv_handler para obter uma pasta de trabalho pronta para usar em uma etapa.

P: Quais versões do Python são suportadas?

O Aspose.Cells FOSS requer Python 3.7 ou posterior. Nenhuma extensão nativa adicional é necessária para exportação CSV; a biblioteca é Python puro.

P: Posso salvar apenas parte de uma planilha (um intervalo de células) como CSV?

O Aspose.Cells FOSS exporta o intervalo usado completo da planilha ativa. Para restringir a saída a um intervalo específico, copie as células desejadas para uma pasta de trabalho temporária e exporte essa pasta de trabalho.

Veja também

 Português