Kā Python saglabāt izklājlapas CSV formātā
Problēma
Saglabājiet Excel darba grāmatu (.xlsx) kā CSV failu, izmantojot Aspose.Cells FOSS Python valodā. Ielādējiet darba grāmatu ar Workbook(), pēc tam izsauciet save_as_csv(), lai ierakstītu aktīvo darblapu kā komatu atdalītu vērtību failu. Pēc izvēles nododiet CSVSaveOptions objektu, lai kontrolētu atdalītāju, kodējumu un pēdiņu uzvedību.
Priekšnosacījumi
Lai saglabātu izklājlapas kā CSV, izmantojot Aspose.Cells FOSS Python valodā, pārliecinieties, ka jūsu vide atbilst šādām prasībām.
- Python 3.7 vai jaunāks instalēts
- Instalējiet Aspose.Cells FOSS, izmantojot
pip install aspose-cells-foss>=26.3.1 - Importējiet bibliotēku, izmantojot
from aspose.cells_foss import Workbook - Pamatzināšanas par Python failu apstrādi
Saglabāšanas soļi
1. solis: instalēt bibliotēku
Instalējiet Aspose.Cells FOSS no PyPI. Licences fails nav nepieciešams FOSS lietošanai.
pip install aspose-cells-foss2. solis: ielādēt darblapu
Instancējiet Workbook, norādot ceļu uz esošu .xlsx failu. Konstruktoram ir pieejams neobligāts password parametrs aizsargātiem darblapas.
from aspose.cells_foss import Workbook
workbook = Workbook("input.xlsx")Lai strādātu ar jaunu darblapu, izlaidi faila ceļu:
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.95Solis 3: saglabāt aktīvo lapu kā CSV
Izsauciet Workbook.save_as_csv() ar vēlamo izvades ceļu. Metode pēc noklusējuma raksta pirmo (aktīvo) darblapu.
workbook.save_as_csv("output.csv")Alternatīvi, izmantojiet vispārējo Workbook.save() metodi — Aspose.Cells FOSS izsecina CSV formātu no .csv paplašinājuma:
workbook.save("output.csv")Abas izsaukumi ražo identisku izvadi, ja nav nepieciešamas pielāgotas opcijas.
4. solis: Saglabāt ar CSV opcijām
Workbook.save_as_csv() pieņem izvēles CSVSaveOptions instanci kā savu otro argumentu. Izveidojiet CSVSaveOptions no aspose.cells_foss.csv_handler un nododiet to tieši, lai kontrolētu eksporta uzvedību, piemēram, izvēloties ne noklusējuma atdalītāju vai kodējumu.
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)Ja netiek nodots CSVSaveOptions, save_as_csv() izmanto bibliotēkas iebūvētos noklusējumus (komata atdalītājs, UTF-8 kodējums). Nododiet opciju objektu, kad vien jums ir jāaizstāj šie noklusējumi programmatiski.
5. solis: Eksportēt konkrētu darblapu
Ja darblapas grāmata satur vairākas lapas, tiek eksportēta aktīvā lapa. Izmantojiet Workbook.set_active_worksheet(), lai izvēlētos, kura lapa tiks eksportēta pirms saglabāšanas.
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")Lai eksportētu katru lapu uz savu CSV failu, iterējiet pār 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")Pilns piemērs
Sekojošais pašpietiekamais piemērs izveido darblapu, aizpilda to ar parauga datiem un saglabā to gan kā standarta CSV, gan kā semikola atdalītu CSV.
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.")Biežāk sastopamās problēmas
Tukšs izvades fails
Ja izvades CSV ir tukšs vai satur tikai tukšas rindas, pārbaudiet, vai šūnu vērtības tika piešķirtas pirms izsaukt save_as_csv(). Metode eksportē aktīvo darblapu — pārliecinieties, ka pareizā darblapa ir aktīva, izmantojot workbook.get_active_worksheet().
Kodēšanas problēmas (Kļūdaini rakstzīmes)
Atverot CSV failu programmā Excel un redzot bojātus simbolus, pārbaudiet, kāds kodējums tika izmantots eksportēšanas laikā. Aspose.Cells FOSS pēc noklusējuma izmanto UTF-8; Excel operētājsistēmā Windows var sagaidīt baitu secības marķieri (BOM), lai pareizi atpazītu kodējumu. Konfigurējiet kodējumu, izmantojot CSVSaveOptions, un nododiet to save_as_csv().
Vairāku lapu darba grāmatas eksportē tikai vienu lapu
CSV ir vienas tabulas formāts; tikai viena darblapa var tikt saglabāta vienā failā. Eksportējiet katru lapu atsevišķi, izmantojot set_active_worksheet(index), kā parādīts 5. solī.
Šūnas, kas satur atdalītāju
Ja šūnas vērtība satur atdalītāja rakstzīmi (piemēram, komatu komatu atdalītā izvadē), Aspose.Cells FOSS automātiski iekavē vērtību eksportēšanas laikā. Izmantojiet CSVSaveOptions, lai vajadzības gadījumā pielāgotu iekavēšanas uzvedību.
BUJ
J: Vai workbook.save("output.csv") rada tādu pašu rezultātu kā save_as_csv()?
Jā. Workbook.save() pārbauda faila paplašinājumu un nodod uz save_as_csv(), kad paplašinājums ir .csv. Izsauciet save_as_csv() tieši un nododiet CSVSaveOptions instance, ja jums ir jāpielāgo eksporta funkcionalitāte, pārsniedzot iebūvētos noklusējumus.
Q: Vai varu eksportēt uz CSV virkni, nevis failu?
Jā. Izmantojiet CSVHandler.save_csv_to_string(workbook, options) no aspose.cells_foss.csv_handler. Tas atgriež CSV saturu kā Python virkni, ko varat rakstīt plūsmā, augšupielādēt vai turpināt apstrādāt, nepieskaroties failu sistēmai.
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)J: Kā ielādēt CSV atpakaļ darblapā pēc saglabāšanas?
Izmantojiet Workbook.load_csv("file.csv") esošā Workbook instancē, vai izsauciet ērtības funkciju load_csv_workbook("file.csv") no aspose.cells_foss.csv_handler, lai vienā solī iegūtu gatavu darba grāmatu.
Q: Kādas Python versijas tiek atbalstītas?
Aspose.Cells FOSS pieprasa Python 3.7 vai jaunāku. CSV eksportam nav nepieciešami papildu vietējie paplašinājumi; bibliotēka ir tīri Python.
J: Vai es varu saglabāt tikai daļu no darblapas (šūnu diapazonu) kā CSV?
Aspose.Cells FOSS eksportē pilnu izmantoto diapazonu aktīvajā darblapā. Lai ierobežotu izvadi uz konkrētu diapazonu, kopējiet vajadzīgās šūnas uz pagaidu darblapu un eksportējiet šo darblapu.
Skatīt arī
- Kā saglabāt failus, izmantojot Aspose.Cells FOSS — vispārējs saglabāšanas pārskats, aptverot XLSX un Markdown
- Kā konvertēt CSV uz JSON Pythonā — ielādēt CSV un eksportēt uz JSON formātu
- Kā eksportēt Excel uz Markdown Pythonā — Markdown tabulas eksportēšana, izmantojot
save_as_markdown() - Aspose.Cells FOSS Pythonam: Izstrādātāja ceļvedis — plaša funkciju dokumentācija
- API atsauce —
Workbook,CSVHandler,CSVSaveOptions