Cara Menyimpan Spreadsheet sebagai CSV di Python

Cara Menyimpan Spreadsheet sebagai CSV di Python

Masalah

Simpan workbook Excel (.xlsx) sebagai file CSV menggunakan Aspose.Cells FOSS di Python. Muat workbook dengan Workbook(), kemudian panggil save_as_csv() untuk menulis lembar kerja aktif ke file nilai yang dipisahkan koma. Secara opsional, berikan objek CSVSaveOptions untuk mengontrol delimiter, encoding, dan perilaku kutipan.

Prasyarat

Untuk menyimpan spreadsheet sebagai CSV menggunakan Aspose.Cells FOSS di Python, pastikan lingkungan Anda memenuhi persyaratan berikut.

  • Python 3.7 atau lebih baru terpasang
  • Instal Aspose.Cells FOSS via pip install aspose-cells-foss>=26.3.1
  • Impor perpustakaan menggunakan from aspose.cells_foss import Workbook
  • Familiaritas dasar dengan penanganan file Python

Menyimpan Langkah

Langkah 1: Instal Perpustakaan

Instal Aspose.Cells FOSS dari PyPI. Tidak diperlukan file lisensi untuk penggunaan FOSS.

pip install aspose-cells-foss

Langkah 2: Muat Workbook

Instansiasi Workbook dengan jalur ke file .xlsx yang ada. Konstruktor menerima parameter password opsional untuk workbook yang dilindungi.

from aspose.cells_foss import Workbook

workbook = Workbook("input.xlsx")

Untuk bekerja dengan workbook baru, lewati jalur file:

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 Lembar Aktif sebagai CSV

Panggil Workbook.save_as_csv() dengan jalur output yang diinginkan. Metode ini menulis lembar kerja pertama (aktif) secara default.

workbook.save_as_csv("output.csv")

Sebagai alternatif, gunakan metode generik Workbook.save() — Aspose.Cells FOSS menyimpulkan format CSV dari ekstensi .csv:

workbook.save("output.csv")

Kedua panggilan menghasilkan output yang identik ketika tidak diperlukan opsi khusus.

Langkah 4: Simpan dengan Opsi CSV

Workbook.save_as_csv() menerima instance CSVSaveOptions opsional sebagai argumen keduanya. Buat instance CSVSaveOptions dari aspose.cells_foss.csv_handler dan lewati langsung untuk mengontrol perilaku ekspor, seperti memilih delimiter atau encoding yang bukan default.

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)

Ketika tidak ada CSVSaveOptions yang diberikan, save_as_csv() menggunakan default bawaan perpustakaan (pemisah koma, enkoding UTF-8). Berikan objek opsi setiap kali Anda perlu mengganti default tersebut secara programatis.

Langkah 5: Ekspor Lembar Kerja Tertentu

Ketika sebuah buku kerja berisi beberapa lembar, lembar aktif yang diekspor. Gunakan Workbook.set_active_worksheet() untuk memilih lembar mana yang akan diekspor 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 mengekspor setiap lembar ke file CSV masing-masing, iterasi atas 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 mandiri berikut membuat sebuah workbook, mengisinya dengan data contoh, dan menyimpannya sebagai CSV standar serta CSV yang dipisahkan dengan 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.")

Masalah Umum

File Output Kosong

Jika output CSV kosong atau hanya berisi baris kosong, verifikasi bahwa nilai sel telah ditetapkan sebelum memanggil save_as_csv(). Metode mengekspor lembar kerja aktif — pastikan lembar yang benar aktif menggunakan workbook.get_active_worksheet().

Masalah Pengkodean (Karakter Rusak)

Saat membuka file CSV di Excel dan melihat karakter yang rusak, periksa encoding yang digunakan saat ekspor. Aspose.Cells FOSS secara default menggunakan UTF-8; Excel di Windows mungkin mengharapkan byte-order mark (BOM) untuk mengenali encoding dengan benar. Konfigurasikan encoding melalui CSVSaveOptions dan berikan ke save_as_csv().

Buku Kerja Multi-Lembar Mengekspor Hanya Satu Lembar

CSV adalah format tabel tunggal; hanya satu lembar kerja yang dapat disimpan per file. Ekspor setiap lembar secara terpisah menggunakan set_active_worksheet(index) seperti yang ditunjukkan pada Langkah 5.

Sel yang Mengandung Pembatas

Jika nilai sel mengandung karakter pemisah (mis., koma dalam output yang dipisahkan koma), Aspose.Cells FOSS secara otomatis menambahkan kutipan pada nilai tersebut saat diekspor. Gunakan CSVSaveOptions untuk menyesuaikan perilaku pengutipan bila diperlukan.

FAQ

Q: Apakah workbook.save("output.csv") menghasilkan hasil yang sama dengan save_as_csv()?

Ya. Workbook.save() memeriksa ekstensi file dan mendelegasikan ke save_as_csv() ketika ekstensi adalah .csv. Panggil save_as_csv() secara langsung dan berikan sebuah instance CSVSaveOptions ketika Anda perlu menyesuaikan ekspor di luar default bawaan.

Q: Bisakah saya mengekspor ke string CSV alih-alih file?

Ya. Gunakan CSVHandler.save_csv_to_string(workbook, options) dari aspose.cells_foss.csv_handler. Ini mengembalikan konten CSV sebagai string Python, yang dapat Anda tulis ke aliran, unggah, atau proses lebih lanjut tanpa menyentuh sistem berkas.

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 cara memuat CSV kembali ke dalam workbook setelah menyimpan?

Gunakan Workbook.load_csv("file.csv") pada instance Workbook yang ada, atau panggil fungsi kemudahan load_csv_workbook("file.csv") dari aspose.cells_foss.csv_handler untuk mendapatkan workbook siap pakai dalam satu langkah.

Q: Versi Python apa yang didukung?

Aspose.Cells FOSS memerlukan Python 3.7 atau yang lebih baru. Tidak diperlukan ekstensi native tambahan untuk ekspor CSV; perpustakaan ini murni Python.

Q: Bisakah saya menyimpan hanya sebagian dari lembar kerja (rentang sel) sebagai CSV?

Aspose.Cells FOSS mengekspor seluruh rentang yang digunakan pada lembar kerja aktif. Untuk membatasi output ke rentang tertentu, salin sel yang diinginkan ke dalam buku kerja sementara dan ekspor buku kerja tersebut.

Lihat Juga

 Bahasa Indonesia