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-fossPasso 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.95Passo 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
- Como salvar arquivos com Aspose.Cells FOSS — visão geral do salvamento cobrindo XLSX e Markdown
- Como converter CSV para JSON em Python — carregar CSV e exportar para o formato JSON
- Como exportar Excel para Markdown em Python — exportação de tabela Markdown usando
save_as_markdown() - Aspose.Cells FOSS para Python: Guia do desenvolvedor — documentação completa de recursos
- Referência de API —
Workbook,CSVHandler,CSVSaveOptions