Cum să salvați foile de calcul ca CSV în Python
Problemă
Salvați un registru de lucru Excel (.xlsx) ca fișier CSV folosind Aspose.Cells FOSS în Python. Încărcați registrul de lucru cu Workbook(), apoi apelați save_as_csv() pentru a scrie foaia activă într-un fișier cu valori separate prin virgulă. Opțional, transmiteți un obiect CSVSaveOptions pentru a controla delimitatorul, codificarea și comportamentul ghilimelelor.
Cerințe prealabile
Pentru a salva foi de calcul ca CSV folosind Aspose.Cells FOSS în Python, asigurați-vă că mediul dvs. îndeplinește următoarele cerințe.
- Python 3.7 sau o versiune ulterioară instalat
- Instalați Aspose.Cells FOSS prin
pip install aspose-cells-foss>=26.3.1 - Importați biblioteca folosind
from aspose.cells_foss import Workbook - Cunoștințe de bază despre gestionarea fișierelor în Python
Pași de salvare
Pasul 1: Instalarea bibliotecii
Instalați Aspose.Cells FOSS din PyPI. Nu este necesar niciun fișier de licență pentru utilizarea FOSS.
pip install aspose-cells-fossPasul 2: Încărcarea registrului de lucru
Instanțiați Workbook cu calea către un fișier .xlsx existent. Constructorul acceptă un parametru opțional password pentru registrele de lucru protejate.
from aspose.cells_foss import Workbook
workbook = Workbook("input.xlsx")Pentru a lucra cu un registru de lucru complet nou, omiteți calea fișierului:
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.95Pasul 3: Salvarea foii active ca CSV
Apelați Workbook.save_as_csv() cu calea de ieșire dorită. Metoda scrie implicit prima foaie (activă).
workbook.save_as_csv("output.csv")Alternativ, folosiți metoda generică Workbook.save() — Aspose.Cells FOSS deduce formatul CSV din extensia .csv:
workbook.save("output.csv")Ambele apeluri produc ieșiri identice când nu sunt necesare opțiuni personalizate.
Pasul 4: Salvarea cu opțiuni CSV
Workbook.save_as_csv() acceptă o instanță opțională de CSVSaveOptions ca al doilea argument. Instanțiați CSVSaveOptions din aspose.cells_foss.csv_handler și transmiteți-o direct pentru a controla comportamentul exportului, cum ar fi alegerea unui delimiter sau a unei codificări neimplicite.
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)Când nu se transmite CSVSaveOptions, save_as_csv() folosește valorile implicite încorporate ale bibliotecii (delimiter virgulă, codificare UTF-8). Transmiteți obiectul de opțiuni ori de câte ori trebuie să suprascrie programatic acele valori implicite.
Pasul 5: Exportul unei foi de lucru specifice
Când un registru de lucru conține mai multe foi, se exportă foaia activă. Folosiți Workbook.set_active_worksheet() pentru a alege ce foaie să exportați înainte de salvare.
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")Pentru a exporta fiecare foaie în propriul fișier CSV, iterați peste 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")Exemplu complet
Următorul exemplu autonom creează un registru de lucru, îl umple cu date eșantion și îl salvează atât ca CSV standard, cât și ca CSV delimitat prin punct și virgulă.
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.")Probleme frecvente
Fișier de ieșire gol
Dacă fișierul CSV de ieșire este gol sau conține doar linii goale, verificați că valorile celulelor au fost atribuite înainte de apelarea save_as_csv(). Metoda exportă foaia de lucru activă — confirmați că foaia corectă este activă folosind workbook.get_active_worksheet().
Probleme de codificare (caractere incorecte)
Când deschideți un CSV în Excel și vedeți caractere corupte, verificați codificarea folosită în timpul exportului. Aspose.Cells FOSS folosește implicit UTF-8; Excel pe Windows poate aștepta o marcă de ordine a octeților (BOM) pentru a recunoaște corect codificarea. Configurați codificarea prin CSVSaveOptions și transmiteți-o la save_as_csv().
Registrele de lucru cu mai multe foi exportă doar o foaie
CSV este un format cu o singură tabelă; doar o foaie de lucru poate fi salvată per fișier. Exportați fiecare foaie individual folosind set_active_worksheet(index) așa cum se arată în Pasul 5.
Celule care conțin delimitatorul
Dacă valoarea unei celule conține caracterul delimiter (de ex., o virgulă în ieșirea delimitată prin virgulă), Aspose.Cells FOSS pune automat valoarea între ghilimele în timpul exportului. Folosiți CSVSaveOptions pentru a personaliza comportamentul ghilimelelor dacă este necesar.
Întrebări frecvente
Î: workbook.save("output.csv") produce același rezultat ca save_as_csv()?
Da. Workbook.save() inspectează extensia fișierului și delegă la save_as_csv() când extensia este .csv. Apelați save_as_csv() direct și transmiteți o instanță de CSVSaveOptions când trebuie să personalizați exportul dincolo de valorile implicite încorporate.
Î: Pot exporta într-un șir CSV în loc de un fișier?
Da. Folosiți CSVHandler.save_csv_to_string(workbook, options) din aspose.cells_foss.csv_handler. Aceasta returnează conținutul CSV ca șir Python, pe care îl puteți scrie într-un flux, încărca sau procesa ulterior fără a atinge sistemul de fișiere.
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)Î: Cum reîncarc un CSV înapoi în registrul de lucru după salvare?
Folosiți Workbook.load_csv("file.csv") pe o instanță existentă de Workbook, sau apelați funcția de conveniență load_csv_workbook("file.csv") din aspose.cells_foss.csv_handler pentru a obține un registru de lucru gata de utilizare într-un singur pas.
Î: Ce versiuni de Python sunt acceptate?
Aspose.Cells FOSS necesită Python 3.7 sau o versiune ulterioară. Nu sunt necesare extensii native suplimentare pentru exportul CSV; biblioteca este Python pur.
Î: Pot salva doar o parte a unei foi de lucru (un interval de celule) ca CSV?
Aspose.Cells FOSS exportă întregul interval utilizat al foii active. Pentru a restricționa ieșirea la un interval specific, copiați celulele dorite într-un registru de lucru temporar și exportați acel registru de lucru.
Vezi și
- Cum să salvați fișiere cu Aspose.Cells FOSS — prezentare generală a salvării acoperind XLSX și Markdown
- Cum să convertiți CSV în JSON în Python — încărcați CSV și exportați în format JSON
- Cum să exportați Excel în Markdown în Python — export tabel Markdown folosind
save_as_markdown() - Aspose.Cells FOSS pentru Python: Ghidul dezvoltatorului — documentație completă a funcționalităților
- Referință API —
Workbook,CSVHandler,CSVSaveOptions