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-fossLangkah 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.95Langkah 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
- Cara Menyimpan Fail dengan Aspose.Cells FOSS — gambaran umum penyimpanan meliputi XLSX dan Markdown
- Cara Menukar CSV ke JSON dalam Python — memuat CSV dan mengeksport ke format JSON
- Cara Mengeksport Excel ke Markdown dalam Python — eksport jadual Markdown menggunakan
save_as_markdown() - Aspose.Cells FOSS untuk Python: Panduan Pembangun — dokumentasi ciri yang komprehensif
- Rujukan API —
Workbook,CSVHandler,CSVSaveOptions