Python'da Elektronik Tabloları CSV Olarak Kaydetme

Python'da Elektronik Tabloları CSV Olarak Kaydetme

Problem

Aspose.Cells FOSS kullanarak Python’da bir Excel çalışma kitabını (.xlsx) CSV dosyası olarak kaydedin. Workbook() ile çalışma kitabını yükleyin, ardından aktif çalışma sayfasını virgülle ayrılmış değerler dosyasına yazmak için save_as_csv() çağırın. Sınırlayıcıyı, kodlamayı ve tırnak işareti davranışını kontrol etmek için isteğe bağlı olarak bir CSVSaveOptions nesnesi geçirin.

Ön Koşullar

Python’da Aspose.Cells FOSS kullanarak elektronik tabloları CSV olarak kaydetmek için ortamınızın aşağıdaki gereksinimleri karşıladığından emin olun.

  • Python 3.7 veya üzeri yüklü
  • Aspose.Cells FOSS’u pip install aspose-cells-foss>=26.3.1 ile kurun
  • Kitaplığı from aspose.cells_foss import Workbook kullanarak içe aktarın
  • Python dosya işleme konusunda temel bilgi

Kaydetme Adımları

Adım 1: Kitaplığı Yükleme

Aspose.Cells FOSS’u PyPI’den yükleyin. FOSS kullanımı için lisans dosyası gerekmez.

pip install aspose-cells-foss

Adım 2: Çalışma Kitabını Yükleme

Mevcut bir .xlsx dosyasının yoluyla Workbook örneği oluşturun. Yapıcı, korumalı çalışma kitapları için isteğe bağlı bir password parametresi kabul eder.

from aspose.cells_foss import Workbook

workbook = Workbook("input.xlsx")

Yeni bir çalışma kitabıyla çalışmak için dosya yolunu atlayın:

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

Adım 3: Aktif Sayfayı CSV Olarak Kaydetme

İstenen çıktı yoluyla Workbook.save_as_csv() çağırın. Yöntem varsayılan olarak ilk (aktif) çalışma sayfasını yazar.

workbook.save_as_csv("output.csv")

Alternatif olarak, genel Workbook.save() yöntemini kullanın — Aspose.Cells FOSS CSV biçimini .csv uzantısından çıkarır:

workbook.save("output.csv")

Özel seçenekler gerekmediğinde her iki çağrı da aynı çıktıyı üretir.

Adım 4: CSV Seçenekleriyle Kaydetme

Workbook.save_as_csv(), ikinci bağımsız değişken olarak isteğe bağlı bir CSVSaveOptions örneği kabul eder. Dışa aktarma davranışını kontrol etmek için aspose.cells_foss.csv_handler‘dan CSVSaveOptions örneği oluşturun ve doğrudan geçirin; örneğin varsayılan olmayan sınırlayıcı veya kodlama seçimi için.

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)

CSVSaveOptions geçirilmediğinde, save_as_csv() kitaplığın yerleşik varsayılanlarını kullanır (virgül sınırlayıcı, UTF-8 kodlama). Bu varsayılanları programatik olarak geçersiz kılmanız gerektiğinde seçenekler nesnesini geçirin.

Adım 5: Belirli Bir Çalışma Sayfasını Dışa Aktarma

Bir çalışma kitabı birden fazla sayfa içerdiğinde, aktif sayfa dışa aktarılır. Kaydetmeden önce hangi sayfanın dışa aktarılacağını seçmek için Workbook.set_active_worksheet() kullanın.

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

Her sayfayı kendi CSV dosyasına dışa aktarmak için workbook.worksheets üzerinde yineleyin:

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

Tam Örnek

Aşağıdaki bağımsız örnek bir çalışma kitabı oluşturur, örnek verilerle doldurur ve hem standart CSV hem de noktalı virgülle ayrılmış CSV olarak kaydeder.

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

Sık Karşılaşılan Sorunlar

Boş Çıktı Dosyası

Çıktı CSV’si boşsa veya yalnızca boş satırlar içeriyorsa, save_as_csv() çağrılmadan önce hücre değerlerinin atandığını doğrulayın. Yöntem aktif çalışma sayfasını dışa aktarır — doğru sayfanın workbook.get_active_worksheet() kullanılarak aktif olduğunu onaylayın.

Kodlama Sorunları (Bozuk Karakterler)

Excel’de bir CSV açarken bozuk karakterler görüyorsanız, dışa aktarma sırasında kullanılan kodlamayı doğrulayın. Aspose.Cells FOSS varsayılan olarak UTF-8 kullanır; Windows’taki Excel, kodlamayı doğru tanımak için bir bayt sırası işareti (BOM) bekleyebilir. Kodlamayı CSVSaveOptions aracılığıyla yapılandırın ve save_as_csv()‘ye geçirin.

Çok Sayfalı Çalışma Kitapları Yalnızca Bir Sayfa Dışa Aktarıyor

CSV tek tablo biçimidir; dosya başına yalnızca bir çalışma sayfası kaydedilebilir. Her sayfayı Adım 5’te gösterildiği gibi set_active_worksheet(index) kullanarak ayrı ayrı dışa aktarın.

Sınırlayıcıyı İçeren Hücreler

Bir hücre değeri sınırlayıcı karakterini içeriyorsa (örneğin, virgülle ayrılmış çıktıda virgül), Aspose.Cells FOSS dışa aktarma sırasında değeri otomatik olarak tırnak içine alır. Gerekirse tırnak işareti davranışını özelleştirmek için CSVSaveOptions kullanın.

Sık Sorulan Sorular

S: workbook.save("output.csv") ile save_as_csv() aynı sonucu mu üretiyor?

Evet. Workbook.save() dosya uzantısını inceler ve uzantı .csv olduğunda save_as_csv()‘ye devreder. Yerleşik varsayılanların ötesinde dışa aktarmayı özelleştirmeniz gerektiğinde save_as_csv() doğrudan çağırın ve bir CSVSaveOptions örneği geçirin.

S: Dosya yerine CSV dizesine dışa aktarabilir miyim?

Evet. aspose.cells_foss.csv_handler‘dan CSVHandler.save_csv_to_string(workbook, options) kullanın. Bu, CSV içeriğini dosya sistemine dokunmadan bir akışa yazabileceğiniz, yükleyebileceğiniz veya işleyebileceğiniz bir Python dizesi olarak döndürür.

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)

S: Kaydettikten sonra CSV’yi çalışma kitabına nasıl geri yüklerim?

Mevcut bir Workbook örneğinde Workbook.load_csv("file.csv") kullanın veya tek adımda kullanıma hazır bir çalışma kitabı elde etmek için aspose.cells_foss.csv_handler‘dan load_csv_workbook("file.csv") kolaylık işlevini çağırın.

S: Hangi Python sürümleri destekleniyor?

Aspose.Cells FOSS, Python 3.7 veya üzerini gerektirir. CSV dışa aktarma için ek yerel uzantılara gerek yoktur; kitaplık saf Python’dur.

S: Bir çalışma sayfasının yalnızca bir bölümünü (hücre aralığı) CSV olarak kaydedebilir miyim?

Aspose.Cells FOSS, aktif çalışma sayfasının kullanılan tam aralığını dışa aktarır. Çıktıyı belirli bir aralıkla sınırlamak için istenen hücreleri geçici bir çalışma kitabına kopyalayın ve o çalışma kitabını dışa aktarın.

Ayrıca Bkz.

 Türkçe