Cara Menyimpan Lembaran Kerja sebagai CSV dalam Python

Cara Menyimpan Lembaran Kerja sebagai CSV dalam Python

Masalah

Simpan buku kerja Excel (.xlsx) sebagai fail CSV menggunakan Aspose.Cells FOSS dalam Python. Muatkan buku kerja dengan Workbook(), kemudian panggil save_as_csv() untuk menulis helaian aktif ke fail nilai dipisahkan koma. Secara pilihan, serahkan objek CSVSaveOptions untuk mengawal pemisah, pengekodan, dan tingkah laku petikan.

Prasyarat

Untuk menyimpan lembar kerja sebagai CSV menggunakan Aspose.Cells FOSS dalam Python, pastikan persekitaran anda memenuhi keperluan berikut.

  • Python 3.7 atau lebih baru dipasang
  • Pasang Aspose.Cells FOSS melalui pip install aspose-cells-foss>=26.3.1
  • Import perpustakaan menggunakan from aspose.cells_foss import Workbook
  • Kefahaman asas tentang pengendalian fail Python

Langkah Menyimpan

Langkah 1: Pasang Perpustakaan

Pasang Aspose.Cells FOSS dari PyPI. Tiada fail lesen diperlukan untuk penggunaan FOSS.

pip install aspose-cells-foss

Langkah 2: Muatkan Buku Kerja

Instansikan Workbook dengan laluan ke fail .xlsx yang sedia ada. Konstruktor menerima parameter password pilihan untuk buku kerja yang dilindungi.

from aspose.cells_foss import Workbook

workbook = Workbook("input.xlsx")

Untuk bekerja dengan buku kerja baru, abaikan laluan fail:

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

Langkah 3: Simpan Lembaran Aktif sebagai CSV

Panggil Workbook.save_as_csv() dengan laluan output yang dikehendaki. Kaedah ini menulis helaian kerja pertama (aktif) secara lalai.

workbook.save_as_csv("output.csv")

Sebagai alternatif, gunakan kaedah generik Workbook.save() — Aspose.Cells FOSS menginfer format CSV daripada sambungan .csv:

workbook.save("output.csv")

Kedua panggilan menghasilkan output yang serupa apabila tiada pilihan khusus diperlukan.

Langkah 4: Simpan dengan Pilihan CSV

Workbook.save_as_csv() menerima contoh CSVSaveOptions pilihan sebagai argumen keduanya. Buat contoh CSVSaveOptions dari aspose.cells_foss.csv_handler dan hantarkan secara langsung untuk mengawal tingkah laku eksport, seperti memilih pemisah bukan lalai atau pengekodan.

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)

Apabila tiada CSVSaveOptions dihantar, save_as_csv() menggunakan nilai lalai terbina dalam perpustakaan (pemisah koma, pengekodan UTF-8). Hantar objek pilihan bila-bila masa anda perlu menimpa nilai lalai tersebut secara programatik.

Langkah 5: Eksport Lembaran Kerja Tertentu

Apabila buku kerja mengandungi beberapa lembaran, lembaran aktif akan dieksport. Gunakan Workbook.set_active_worksheet() untuk memilih lembaran mana yang hendak dieksport sebelum menyimpan.

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")

Untuk mengeksport setiap lembaran ke fail CSV masing-masing, ulangi melalui 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")

Contoh Lengkap

Contoh berdiri sendiri berikut mencipta buku kerja, mengisinya dengan data contoh, dan menyimpannya sebagai CSV standard serta CSV bersempadan titik koma.

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.")

Isu Umum

Fail Output Kosong

Jika CSV output kosong atau hanya mengandungi baris kosong, sahkan bahawa nilai sel telah diberikan sebelum memanggil save_as_csv(). Kaedah ini mengeksport lembar kerja aktif — sahkan lembar kerja yang betul aktif menggunakan workbook.get_active_worksheet().

Masalah Pengekodan (Karakter Rosak)

Apabila membuka CSV dalam Excel dan melihat aksara rosak, sahkan pengekodan yang digunakan semasa eksport. Aspose.Cells FOSS secara lalai menggunakan UTF-8; Excel pada Windows mungkin mengharapkan penanda urutan bait (BOM) untuk mengenali pengekodan dengan betul. Konfigurasikan pengekodan melalui CSVSaveOptions dan hantarkan kepada save_as_csv().

Buku Kerja Berbilang Lembaran Mengeksport Hanya Satu Lembaran

CSV adalah format satu-jadual; hanya satu lembar kerja boleh disimpan per fail. Eksport setiap lembar secara individu menggunakan set_active_worksheet(index) seperti yang ditunjukkan dalam Langkah 5.

Sel yang Mengandungi Pemisah

Jika nilai sel mengandungi aksara pemisah (contohnya, koma dalam output berasaskan koma), Aspose.Cells FOSS secara automatik menambah petikan pada nilai semasa eksport. Gunakan CSVSaveOptions untuk menyesuaikan tingkah laku petikan jika diperlukan.

FAQ

Q: Adakah workbook.save("output.csv") menghasilkan keputusan yang sama seperti save_as_csv()?

Ya. Workbook.save() memeriksa sambungan fail dan menyerahkan kepada save_as_csv() apabila sambungan ialah .csv. Panggil save_as_csv() secara langsung dan hantarkan contoh CSVSaveOptions apabila anda perlu menyesuaikan eksport melebihi nilai lalai terbina.

Q: Bolehkah saya mengeksport ke rentetan CSV dan bukannya fail?

Ya. Gunakan CSVHandler.save_csv_to_string(workbook, options) dari aspose.cells_foss.csv_handler. Ini mengembalikan kandungan CSV sebagai rentetan Python, yang anda boleh tulis ke aliran, muat naik, atau proses selanjutnya tanpa menyentuh sistem fail.

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: Bagaimana saya memuatkan CSV kembali ke dalam buku kerja selepas menyimpan?

Gunakan Workbook.load_csv("file.csv") pada contoh Workbook yang sedia ada, atau panggil fungsi kemudahan load_csv_workbook("file.csv") dari aspose.cells_foss.csv_handler untuk mendapatkan buku kerja siap guna dalam satu langkah.

Q: Versi Python mana yang disokong?

Aspose.Cells FOSS memerlukan Python 3.7 atau lebih baru. Tiada sambungan asli tambahan diperlukan untuk eksport CSV; perpustakaan ini adalah Python tulen.

Q: Bolehkah saya menyimpan hanya sebahagian daripada helaian kerja (kawasan sel) sebagai CSV?

Aspose.Cells FOSS mengeksport seluruh julat yang digunakan pada lembar kerja aktif. Untuk mengehadkan output kepada julat tertentu, salin sel yang dikehendaki ke dalam buku kerja sementara dan eksport buku kerja tersebut.

Lihat Juga

 Bahasa Melayu