Bekerja dengan Sel

Gambaran Umum

Setiap lembar kerja mengekspos sebuah cells koleksi yang memetakan string alamat bergaya Excel (seperti "A1", "B3") ke Cell objek. Anda mengakses sel secara langsung dengan subskrip:

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

##Access a cell by address
cell = ws.cells["A1"]

Nilai, rumus, dan informasi gaya semuanya berada pada Cell objek. Anda dapat baik memodifikasi sel secara langsung dengan menulis ke .value atau .formula properti, atau mengganti sel sepenuhnya dengan menetapkan sebuah Cell instance ke alamat tersebut.


Membaca dan Menulis Nilai

Tetapkan ke cell.value untuk menulis string, integer, atau float. Baca properti kembali untuk mengambil apa pun yang disimpan.

from aspose.cells_foss import Workbook

workbook = Workbook()
ws = workbook.worksheets[0]

##Write a string
ws.cells["A1"].value = "Hello, world"

##Write an integer
ws.cells["A2"].value = 42

##Write a float
ws.cells["A3"].value = 3.14159

##Read values back
print(ws.cells["A1"].value)   # Hello, world
print(ws.cells["A2"].value)   # 42
print(ws.cells["A3"].value)   # 3.14159

workbook.save("values_demo.xlsx")

The .value properti menerima skalar Python apa pun. Perpustakaan menyimpan tipe Python apa adanya; tidak ada konversi implisit yang terjadi pada saat penulisan.


Menggunakan Konstruktor Cell

The Cell konstruktor memungkinkan Anda membuat sel dengan nilai (dan opsionalnya sebuah formula) dalam satu ekspresi. Tetapkan hasilnya Cell objek ke subskrip alamat untuk menempatkannya di lembar.

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

##Integer cell
ws.cells["A1"] = Cell(42)

##String cell
ws.cells["A2"] = Cell("Revenue")

##Float cell
ws.cells["A3"] = Cell(3.14)

##Explicitly empty cell (no value, no formula)
ws.cells["A4"] = Cell(None)

workbook.save("cell_constructor_demo.xlsx")

Argumen posisi pertama untuk Cell adalah nilai. Ketika Anda memberikan None yang sel disimpan tanpa nilai, yang berguna ketika Anda berniat menetapkan sebuah formula secara terpisah atau menginginkan sel kosong secara eksplisit daripada tidak ada.


Sel Formula

Sel formula menyimpan string ekspresi yang kompatibel dengan Excel bersamaan dengan (atau menggantikan) nilai statis. Ada dua cara untuk membuatnya.

Melalui konstruktor Cell — berikan None sebagai nilai dan string formula sebagai argumen kedua:

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

ws.cells["A1"] = Cell(10)
ws.cells["A2"] = Cell(20)
ws.cells["A3"] = Cell(30)

##Formula via constructor: value=None, formula="=SUM(A1:A3)"
ws.cells["A4"] = Cell(None, "=SUM(A1:A3)")

workbook.save("formula_constructor.xlsx")

Melalui .formula properti — tetapkan properti pada sel yang ada:

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

for i, v in enumerate([5, 10, 15, 20, 25], start=1):
    ws.cells[f"A{i}"].value = v

ws.cells["B1"].formula = "=AVERAGE(A1:A5)"

workbook.save("formula_property.xlsx")

Referensi Cepat Formula Umum

TujuanString formula
Jumlahkan rentang=SUM(A1:A10)
Rata-rata rentang=AVERAGE(A1:A10)
Nilai maksimum=MAX(A1:A10)
Nilai minimum=MIN(A1:A10)
Hitung tidak kosong=COUNT(A1:A10)
Nilai bersyarat=IF(A1>0,"Positive","Non-positive")
Cari nilai=VLOOKUP(D1,A1:B10,2,FALSE)
Gabungkan string=CONCATENATE(A1," ",B1)

String formula harus dimulai dengan =. Perpustakaan menyimpan mereka apa adanya; Excel (atau pembaca yang kompatibel) mengevaluasi ekspresi saat file dibuka.


Iterasi Data

Gunakan loop Python standar untuk mengisi kolom atau baris dari sebuah daftar:

from aspose.cells_foss import Workbook

workbook = Workbook()
ws = workbook.worksheets[0]

monthly_sales = [12_500, 14_200, 9_800, 17_600, 21_100, 18_400]

##Write a header
ws.cells["A1"].value = "Monthly Sales"

##Write data starting at row 2 (index 1 → address A2)
for i, val in enumerate(monthly_sales, start=2):
    ws.cells[f"A{i}"].value = val

##Write a SUM formula below the data
last_row = 1 + len(monthly_sales)  # row index of last data cell
ws.cells[f"A{last_row + 1}"].formula = f"=SUM(A2:A{last_row})"

workbook.save("monthly_sales.xlsx")

The enumerate(iterable, start=N) pola memetakan secara bersih ke nomor baris Excel karena baris Excel dimulai dari 1. Mulai pada start=2 menyisakan baris 1 untuk sebuah header.


Tipe Nilai Campuran

Contoh lengkap berikut membangun dataset kecil dengan baris header teks, tiga baris data yang berisi integer, float, dan string, serta baris formula yang merangkum kolom numerik.

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

##--- Header row ---
ws.cells["A1"].value = "Product"
ws.cells["B1"].value = "Units Sold"
ws.cells["C1"].value = "Unit Price"
ws.cells["D1"].value = "Revenue"

##--- Data rows ---
##Row 2
ws.cells["A2"] = Cell("Widget A")
ws.cells["B2"] = Cell(120)
ws.cells["C2"] = Cell(9.99)
ws.cells["D2"] = Cell(None, "=B2*C2")

##Row 3
ws.cells["A3"] = Cell("Widget B")
ws.cells["B3"] = Cell(85)
ws.cells["C3"] = Cell(14.50)
ws.cells["D3"] = Cell(None, "=B3*C3")

##Row 4
ws.cells["A4"] = Cell("Widget C")
ws.cells["B4"] = Cell(200)
ws.cells["C4"] = Cell(4.75)
ws.cells["D4"] = Cell(None, "=B4*C4")

##--- Summary row ---
ws.cells["A5"].value = "TOTAL"
ws.cells["B5"] = Cell(None, "=SUM(B2:B4)")
ws.cells["D5"] = Cell(None, "=SUM(D2:D4)")

workbook.save("mixed_types_dataset.xlsx")
print("Saved mixed_types_dataset.xlsx")

Setelah membuka file di Excel (atau aplikasi spreadsheet yang kompatibel apa pun), the D kolom dan B5 / D5 sel-sel akan menampilkan hasil yang dievaluasi dari ekspresi rumus.


Tips

None nilai vs string kosong

Cell(None) dan ws.cells["A1"].value = None buat sel tanpa nilai yang disimpan nilai — tidak dapat dibedakan dari sel yang tidak pernah ditulis dalam kebanyakan pembaca spreadsheet pembaca. Cell("") atau ws.cells["A1"].value = "" buat sel yang secara eksplisit mengandung string kosong, yang diperlakukan secara berbeda oleh beberapa pembaca dan rumus (misalnya, =COUNT mengabaikan sel string kosong dengan cara yang sama seperti mengabaikan sel kosong sel, tetapi =COUNTA menghitungnya).

String formula vs nilai statis

Membaca .value dari sel formula mengembalikan None (atau nilai cache terakhir jika satu telah diatur sebelum formula ditetapkan). Membaca .formula mengembalikan string ekspresi. Jika Anda perlu membedakan antara sel formula dan sel nilai biasa pada waktu berjalan, periksa apakah ws.cells["A1"].formula tidak kosong:

cell = ws.cells["A1"]
if cell.formula:
    print(f"Formula: {cell.formula}")
else:
    print(f"Value: {cell.value}")

Lihat Juga

 Bahasa Indonesia