Comment enregistrer des feuilles de calcul au format CSV en Python
Problème
Enregistrez un classeur Excel (.xlsx) au format CSV avec Aspose.Cells FOSS en Python. Chargez le classeur avec Workbook(), puis appelez save_as_csv() pour écrire la feuille active dans un fichier de valeurs séparées par des virgules. Passez optionnellement un objet CSVSaveOptions pour contrôler le délimiteur, l’encodage et le comportement des guillemets.
Prérequis
Pour enregistrer des feuilles de calcul au format CSV avec Aspose.Cells FOSS en Python, assurez-vous que votre environnement répond aux exigences suivantes.
- Python 3.7 ou ultérieur installé
- Installez Aspose.Cells FOSS via
pip install aspose-cells-foss>=26.3.1 - Importez la bibliothèque avec
from aspose.cells_foss import Workbook - Connaissance de base de la gestion des fichiers en Python
Étapes d’enregistrement
Étape 1 : Installer la bibliothèque
Installez Aspose.Cells FOSS depuis PyPI. Aucun fichier de licence n’est requis pour l’utilisation FOSS.
pip install aspose-cells-fossÉtape 2 : Charger le classeur
Instanciez Workbook avec le chemin vers un fichier .xlsx existant. Le constructeur accepte un paramètre optionnel password pour les classeurs protégés.
from aspose.cells_foss import Workbook
workbook = Workbook("input.xlsx")Pour travailler avec un tout nouveau classeur, omettez le chemin du fichier :
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Étape 3 : Enregistrer la feuille active en CSV
Appelez Workbook.save_as_csv() avec le chemin de sortie souhaité. La méthode écrit la première feuille (active) par défaut.
workbook.save_as_csv("output.csv")Vous pouvez également utiliser la méthode générique Workbook.save() — Aspose.Cells FOSS déduit le format CSV de l’extension .csv :
workbook.save("output.csv")Les deux appels produisent une sortie identique lorsqu’aucune option personnalisée n’est nécessaire.
Étape 4 : Enregistrer avec des options CSV
Workbook.save_as_csv() accepte une instance optionnelle de CSVSaveOptions comme second argument. Instanciez CSVSaveOptions depuis aspose.cells_foss.csv_handler et passez-la directement pour contrôler le comportement d’exportation, comme le choix d’un délimiteur ou d’un encodage non standard.
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)Lorsqu’aucun CSVSaveOptions n’est passé, save_as_csv() utilise les valeurs par défaut intégrées de la bibliothèque (délimiteur virgule, encodage UTF-8). Passez l’objet d’options chaque fois que vous devez remplacer ces valeurs par défaut par programmation.
Étape 5 : Exporter une feuille de calcul spécifique
Lorsqu’un classeur contient plusieurs feuilles, la feuille active est exportée. Utilisez Workbook.set_active_worksheet() pour choisir quelle feuille exporter avant l’enregistrement.
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")Pour exporter chaque feuille dans son propre fichier CSV, itérez sur 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")Exemple complet
L’exemple autonome suivant crée un classeur, le remplit avec des données d’exemple et l’enregistre à la fois comme CSV standard et comme CSV délimité par des points-virgules.
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.")Problèmes courants
Fichier de sortie vide
Si le CSV de sortie est vide ou ne contient que des lignes vides, vérifiez que les valeurs des cellules ont été assignées avant d’appeler save_as_csv(). La méthode exporte la feuille de calcul active — confirmez que la bonne feuille est active avec workbook.get_active_worksheet().
Problèmes d’encodage (caractères illisibles)
Lors de l’ouverture d’un CSV dans Excel et de l’affichage de caractères corrompus, vérifiez l’encodage utilisé lors de l’exportation. Aspose.Cells FOSS utilise UTF-8 par défaut ; Excel sous Windows peut s’attendre à une marque d’ordre d’octet (BOM) pour reconnaître correctement l’encodage. Configurez l’encodage via CSVSaveOptions et passez-le à save_as_csv().
Les classeurs multi-feuilles n’exportent qu’une seule feuille
CSV est un format mono-table ; une seule feuille de calcul peut être enregistrée par fichier. Exportez chaque feuille individuellement en utilisant set_active_worksheet(index) comme indiqué à l’Étape 5.
Cellules contenant le délimiteur
Si la valeur d’une cellule contient le caractère délimiteur (par ex., une virgule dans une sortie délimitée par des virgules), Aspose.Cells FOSS met automatiquement la valeur entre guillemets lors de l’exportation. Utilisez CSVSaveOptions pour personnaliser le comportement des guillemets si nécessaire.
FAQ
Q : workbook.save("output.csv") produit-il le même résultat que save_as_csv() ?
Oui. Workbook.save() inspecte l’extension du fichier et délègue à save_as_csv() lorsque l’extension est .csv. Appelez save_as_csv() directement et passez une instance de CSVSaveOptions lorsque vous devez personnaliser l’exportation au-delà des valeurs par défaut intégrées.
Q : Puis-je exporter vers une chaîne CSV plutôt que vers un fichier ?
Oui. Utilisez CSVHandler.save_csv_to_string(workbook, options) depuis aspose.cells_foss.csv_handler. Cela retourne le contenu CSV sous forme de chaîne Python, que vous pouvez écrire dans un flux, télécharger ou traiter davantage sans toucher le système de fichiers.
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)Q : Comment recharger un CSV dans un classeur après l’avoir enregistré ?
Utilisez Workbook.load_csv("file.csv") sur une instance existante de Workbook, ou appelez la fonction utilitaire load_csv_workbook("file.csv") depuis aspose.cells_foss.csv_handler pour obtenir un classeur prêt à l’emploi en une seule étape.
Q : Quelles versions de Python sont prises en charge ?
Aspose.Cells FOSS nécessite Python 3.7 ou ultérieur. Aucune extension native supplémentaire n’est requise pour l’exportation CSV ; la bibliothèque est du Python pur.
Q : Puis-je enregistrer seulement une partie d’une feuille de calcul (une plage de cellules) en CSV ?
Aspose.Cells FOSS exporte la plage utilisée complète de la feuille active. Pour restreindre la sortie à une plage spécifique, copiez les cellules souhaitées dans un classeur temporaire et exportez ce classeur.
Voir aussi
- Comment enregistrer des fichiers avec Aspose.Cells FOSS — présentation générale de l’enregistrement couvrant XLSX et Markdown
- Comment convertir CSV en JSON en Python — charger un CSV et exporter au format JSON
- Comment exporter Excel en Markdown en Python — export de tableau Markdown avec
save_as_markdown() - Aspose.Cells FOSS pour Python : Guide du développeur — documentation complète des fonctionnalités
- Référence API —
Workbook,CSVHandler,CSVSaveOptions