Kā Python saglabāt izklājlapas CSV formātā

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-foss

2. 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.95

Solis 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ī

 Latviešu