Come salvare fogli di calcolo come CSV in Python
Problema
Salvate una cartella di lavoro Excel (.xlsx) come file CSV usando Aspose.Cells FOSS in Python. Caricate la cartella di lavoro con Workbook(), poi chiamate save_as_csv() per scrivere il foglio attivo in un file di valori separati da virgole. Opzionalmente passate un oggetto CSVSaveOptions per controllare il delimitatore, la codifica e il comportamento delle virgolette.
Prerequisiti
Per salvare fogli di calcolo come CSV usando Aspose.Cells FOSS in Python, assicuratevi che il vostro ambiente soddisfi i seguenti requisiti.
- Python 3.7 o versione successiva installato
- Installate Aspose.Cells FOSS tramite
pip install aspose-cells-foss>=26.3.1 - Importate la libreria usando
from aspose.cells_foss import Workbook - Conoscenza di base della gestione dei file in Python
Passi per il salvataggio
Passo 1: Installare la libreria
Installate Aspose.Cells FOSS da PyPI. Non è richiesto alcun file di licenza per l’uso FOSS.
pip install aspose-cells-fossPasso 2: Caricare la cartella di lavoro
Istanziate Workbook con il percorso a un file .xlsx esistente. Il costruttore accetta un parametro opzionale password per le cartelle di lavoro protette.
from aspose.cells_foss import Workbook
workbook = Workbook("input.xlsx")Per lavorare con una cartella di lavoro completamente nuova, omettete il percorso del file:
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: Salvare il foglio attivo come CSV
Chiamate Workbook.save_as_csv() con il percorso di output desiderato. Il metodo scrive il primo foglio (attivo) per impostazione predefinita.
workbook.save_as_csv("output.csv")In alternativa, usate il metodo generico Workbook.save() — Aspose.Cells FOSS deduce il formato CSV dall’estensione .csv:
workbook.save("output.csv")Entrambe le chiamate producono un output identico quando non sono necessarie opzioni personalizzate.
Passo 4: Salvare con opzioni CSV
Workbook.save_as_csv() accetta un’istanza opzionale di CSVSaveOptions come secondo argomento. Istanziate CSVSaveOptions da aspose.cells_foss.csv_handler e passatela direttamente per controllare il comportamento dell’esportazione, come la scelta di un delimitatore o una codifica non predefiniti.
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 non viene passato CSVSaveOptions, save_as_csv() usa le impostazioni predefinite incorporate della libreria (delimitatore virgola, codifica UTF-8). Passate l’oggetto opzioni ogni volta che è necessario sovrascrivere queste impostazioni predefinite a livello di programmazione.
Passo 5: Esportare un foglio di lavoro specifico
Quando una cartella di lavoro contiene più fogli, viene esportato il foglio attivo. Usate Workbook.set_active_worksheet() per scegliere quale foglio esportare prima del salvataggio.
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")Per esportare ogni foglio nel proprio file CSV, iterate su 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")Esempio completo
Il seguente esempio autonomo crea una cartella di lavoro, la riempie con dati di esempio e la salva sia come CSV standard che come CSV delimitato da punto e virgola.
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.")Problemi comuni
File di output vuoto
Se il CSV di output è vuoto o contiene solo righe vuote, verificate che i valori delle celle siano stati assegnati prima di chiamare save_as_csv(). Il metodo esporta il foglio di lavoro attivo — confermate che il foglio corretto sia attivo usando workbook.get_active_worksheet().
Problemi di codifica (caratteri illeggibili)
Quando si apre un CSV in Excel e si vedono caratteri corrotti, verificate la codifica usata durante l’esportazione. Aspose.Cells FOSS usa UTF-8 per impostazione predefinita; Excel su Windows potrebbe aspettarsi un indicatore dell’ordine dei byte (BOM) per riconoscere correttamente la codifica. Configurate la codifica tramite CSVSaveOptions e passatela a save_as_csv().
Le cartelle di lavoro con più fogli esportano solo un foglio
CSV è un formato a tabella singola; è possibile salvare solo un foglio di lavoro per file. Esportate ogni foglio individualmente usando set_active_worksheet(index) come mostrato nel Passo 5.
Celle contenenti il delimitatore
Se il valore di una cella contiene il carattere delimitatore (ad es., una virgola in un output delimitato da virgole), Aspose.Cells FOSS mette automaticamente il valore tra virgolette durante l’esportazione. Usate CSVSaveOptions per personalizzare il comportamento delle virgolette se necessario.
Domande frequenti
D: workbook.save("output.csv") produce lo stesso risultato di save_as_csv()?
Sì. Workbook.save() controlla l’estensione del file e delega a save_as_csv() quando l’estensione è .csv. Chiamate save_as_csv() direttamente e passate un’istanza di CSVSaveOptions quando è necessario personalizzare l’esportazione oltre le impostazioni predefinite incorporate.
D: Posso esportare in una stringa CSV invece di un file?
Sì. Usate CSVHandler.save_csv_to_string(workbook, options) da aspose.cells_foss.csv_handler. Questo restituisce il contenuto CSV come stringa Python, che potete scrivere in uno stream, caricare o elaborare ulteriormente senza toccare il filesystem.
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)D: Come ricarico un CSV nella cartella di lavoro dopo il salvataggio?
Usate Workbook.load_csv("file.csv") su un’istanza esistente di Workbook, o chiamate la funzione di convenienza load_csv_workbook("file.csv") da aspose.cells_foss.csv_handler per ottenere una cartella di lavoro pronta all’uso in un solo passaggio.
D: Quali versioni di Python sono supportate?
Aspose.Cells FOSS richiede Python 3.7 o versione successiva. Non sono necessarie estensioni native aggiuntive per l’esportazione CSV; la libreria è Python puro.
D: Posso salvare solo una parte di un foglio di lavoro (un intervallo di celle) come CSV?
Aspose.Cells FOSS esporta l’intero intervallo utilizzato del foglio attivo. Per limitare l’output a un intervallo specifico, copiate le celle desiderate in una cartella di lavoro temporanea ed esportate quella cartella di lavoro.
Vedere anche
- Come salvare file con Aspose.Cells FOSS — panoramica generale del salvataggio che copre XLSX e Markdown
- Come convertire CSV in JSON in Python — caricare CSV ed esportare in formato JSON
- Come esportare Excel in Markdown in Python — esportazione tabella Markdown usando
save_as_markdown() - Aspose.Cells FOSS per Python: Guida per sviluppatori — documentazione completa delle funzionalità
- Riferimento API —
Workbook,CSVHandler,CSVSaveOptions