Com guardar fulls de càlcul com a CSV en Python
Problema
Deseu un llibre de treball d’Excel (.xlsx) com a fitxer CSV amb Aspose.Cells FOSS en Python. Carregueu el llibre de treball amb Workbook(), i després crideu save_as_csv() per escriure el full actiu en un fitxer de valors separats per comes. Opcionalment, passeu un objecte CSVSaveOptions per controlar el delimitador, la codificació i el comportament de les cometes.
Requisits previs
Per desar fulls de càlcul com a CSV amb Aspose.Cells FOSS en Python, assegureu-vos que el vostre entorn compleixi els requisits següents.
- Python 3.7 o posterior instal·lat
- Instal·leu Aspose.Cells FOSS amb
pip install aspose-cells-foss>=26.3.1 - Importeu la biblioteca amb
from aspose.cells_foss import Workbook - Coneixements bàsics de la gestió de fitxers en Python
Passos per desar
Pas 1: Instal·lar la biblioteca
Instal·leu Aspose.Cells FOSS des de PyPI. No es necessita cap fitxer de llicència per a l’ús FOSS.
pip install aspose-cells-fossPas 2: Carregar el llibre de treball
Instancieu Workbook amb la ruta a un fitxer .xlsx existent. El constructor accepta un paràmetre opcional password per a llibres de treball protegits.
from aspose.cells_foss import Workbook
workbook = Workbook("input.xlsx")Per treballar amb un llibre de treball nou, ometeu la ruta del fitxer:
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.95Pas 3: Desar el full actiu com a CSV
Crideu Workbook.save_as_csv() amb la ruta de sortida desitjada. El mètode escriu el primer full (actiu) per defecte.
workbook.save_as_csv("output.csv")Alternativament, useu el mètode genèric Workbook.save() — Aspose.Cells FOSS dedueix el format CSV de l’extensió .csv:
workbook.save("output.csv")Totes dues crides produeixen una sortida idèntica quan no es necessiten opcions personalitzades.
Pas 4: Desar amb opcions CSV
Workbook.save_as_csv() accepta una instància opcional de CSVSaveOptions com a segon argument. Instancieu CSVSaveOptions des de aspose.cells_foss.csv_handler i passeu-la directament per controlar el comportament d’exportació, com ara triar un delimitador o codificació no predeterminats.
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)Quan no es passa CSVSaveOptions, save_as_csv() utilitza els valors predeterminats integrats de la biblioteca (delimitador de coma, codificació UTF-8). Passeu l’objecte d’opcions sempre que necessiteu substituir aquests valors per defecte de manera programàtica.
Pas 5: Exportar un full de càlcul específic
Quan un llibre de treball conté diversos fulls, s’exporta el full actiu. Useu Workbook.set_active_worksheet() per triar quin full exportar abans de desar.
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 exportar cada full al seu propi fitxer CSV, itereu 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")Exemple complet
El següent exemple autònom crea un llibre de treball, l’omple amb dades de mostra i el desa tant com a CSV estàndard com a CSV delimitat per punt i coma.
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.")Problemes habituals
Fitxer de sortida buit
Si el CSV de sortida és buit o conté només línies en blanc, verifiqueu que els valors de les cel·les s’hagin assignat abans de cridar save_as_csv(). El mètode exporta el full de càlcul actiu — confirmeu que el full correcte és actiu usant workbook.get_active_worksheet().
Problemes de codificació (caràcters il·legibles)
Quan obriu un CSV a Excel i veieu caràcters corruptes, verifiqueu la codificació usada durant l’exportació. Aspose.Cells FOSS utilitza UTF-8 per defecte; Excel a Windows pot esperar una marca d’ordre de bytes (BOM) per reconèixer la codificació correctament. Configureu la codificació mitjançant CSVSaveOptions i passeu-la a save_as_csv().
Els llibres de treball amb múltiples fulls exporten només un full
CSV és un format de taula única; només es pot desar un full de càlcul per fitxer. Exporteu cada full individualment usant set_active_worksheet(index) com es mostra al Pas 5.
Cel·les que contenen el delimitador
Si el valor d’una cel·la conté el caràcter delimitador (p. ex., una coma en una sortida delimitada per comes), Aspose.Cells FOSS entrecomilla automàticament el valor durant l’exportació. Useu CSVSaveOptions per personalitzar el comportament de les cometes si cal.
Preguntes freqüents
P: Produeix workbook.save("output.csv") el mateix resultat que save_as_csv()?
Sí. Workbook.save() inspecciona l’extensió del fitxer i delega en save_as_csv() quan l’extensió és .csv. Crideu save_as_csv() directament i passeu una instància de CSVSaveOptions quan necessiteu personalitzar l’exportació més enllà dels valors predeterminats integrats.
P: Puc exportar a una cadena CSV en lloc d’un fitxer?
Sí. Useu CSVHandler.save_csv_to_string(workbook, options) des de aspose.cells_foss.csv_handler. Això retorna el contingut CSV com una cadena de Python, que podeu escriure en un flux, pujar o processar posteriorment sense tocar el sistema de fitxers.
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: Com puc carregar un CSV de nou al llibre de treball després de desar-lo?
Useu Workbook.load_csv("file.csv") en una instància existent de Workbook, o crideu la funció de conveniència load_csv_workbook("file.csv") des de aspose.cells_foss.csv_handler per obtenir un llibre de treball llest per usar en un sol pas.
P: Quines versions de Python estan admeses?
Aspose.Cells FOSS requereix Python 3.7 o posterior. No calen extensions natives addicionals per a l’exportació CSV; la biblioteca és Python pur.
P: Puc desar només una part d’un full de càlcul (un rang de cel·les) com a CSV?
Aspose.Cells FOSS exporta el rang complet usat del full actiu. Per restringir la sortida a un rang específic, copieu les cel·les desitjades en un llibre de treball temporal i exporteu aquest llibre de treball.
Vegeu també
- Com desar fitxers amb Aspose.Cells FOSS — visió general del desament que cobreix XLSX i Markdown
- Com convertir CSV a JSON en Python — carregar CSV i exportar al format JSON
- Com exportar Excel a Markdown en Python — exportació de taules Markdown usant
save_as_markdown() - Aspose.Cells FOSS per a Python: Guia del desenvolupador — documentació completa de funcionalitats
- Referència de l’API —
Workbook,CSVHandler,CSVSaveOptions