Bekerja dengan Sel

Gambaran Keseluruhan

Setiap lembar kerja mendedahkan satu cells koleksi yang memetakan rentetan alamat gaya-Excel (seperti "A1", "B3") kepada Cell objek. Anda boleh 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, formula, dan maklumat gaya semuanya berada pada Cell objek. Anda boleh sama ada mengubah sel di tempat dengan menulis ke .value atau .formula sifat, atau menggantikan sel sepenuhnya dengan menetapkan satu Cell contoh kepada alamat tersebut.


Membaca dan Menulis Nilai

Tetapkan kepada cell.value untuk menulis rentetan, integer, atau float. Baca semula sifat yang sama untuk mendapatkan apa sahaja 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 sifat menerima sebarang skalar Python. Perpustakaan menyimpan Python jenis seperti sedia ada; tiada penukaran tersirat berlaku pada masa menulis.


Menggunakan Konstruktor Cell

The Cell pembina membolehkan anda mencipta sel dengan nilai (dan secara pilihan satu formula) dalam satu ungkapan. Tetapkan hasilnya Cell objek kepada subskrip alamat untuk meletakkannya dalam helaian.

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 kepada Cell adalah nilai. Apabila anda menghantar None yang sel disimpan tanpa nilai, yang berguna apabila anda berniat menetapkan formula secara berasingan atau mahu sel kosong secara eksplisit daripada yang tiada.


Sel Formula

Sel formula menyimpan rentetan ungkapan yang serasi dengan Excel bersama (atau menggantikan) nilai statik. Terdapat dua cara untuk menciptanya.

Melalui konstruktor Cell — hantarkan None sebagai nilai dan rentetan 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 sifat — tetapkan sifat pada sel yang sedia 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")

Rujukan Pantas Formula Umum

TujuanRentetan formula
Jumlahkan julat=SUM(A1:A10)
Purata julat=AVERAGE(A1:A10)
Nilai maksimum=MAX(A1:A10)
Nilai minimum=MIN(A1:A10)
Kira bukan kosong=COUNT(A1:A10)
Nilai bersyarat=IF(A1>0,"Positive","Non-positive")
Cari nilai=VLOOKUP(D1,A1:B10,2,FALSE)
Gabungkan rentetan=CONCATENATE(A1," ",B1)

Rentetan formula mesti bermula dengan =. Perpustakaan menyimpan mereka secara tepat; Excel (atau pembaca serasi) menilai ungkapan apabila fail dibuka.


Iterasi Data

Gunakan gelung Python standard untuk mengisi lajur atau baris daripada senarai:

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 dengan bersih ke nombor baris Excel kerana baris Excel berasaskan 1. Bermula pada start=2 menyimpan baris 1 untuk satu pengepala.


Jenis Nilai Campuran

Contoh lengkap berikut membina set data kecil dengan baris tajuk teks, tiga baris data yang mengandungi integer, float, dan string, serta baris formula yang merangkumkan lajur 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")

Selepas membuka fail dalam Excel (atau mana-mana aplikasi hamparan yang serasi), yang D lajur dan B5 / D5 sel-sel akan memaparkan hasil yang dinilai daripada ungkapan formula.


Petua

None nilai vs rentetan kosong

Cell(None) dan ws.cells["A1"].value = None ciptakan sel tanpa disimpan nilai — tidak dapat dibezakan daripada sel yang tidak pernah ditulis dalam kebanyakan hamparan kerja pembaca. Cell("") atau ws.cells["A1"].value = "" ciptakan sel yang secara eksplisit mengandungi rentetan kosong, yang mana beberapa pembaca dan formula melakukannya secara berbeza (contohnya, =COUNT mengabaikan sel rentetan kosong dengan cara yang sama seperti ia mengabaikan sel kosong sel, tetapi =COUNTA menghitungnya).

Rentetan formula vs nilai statik

Membaca .value dari sel formula mengembalikan None (atau nilai cache terakhir jika satu telah ditetapkan sebelum formula diberikan). Membaca .formula mengembalikan rentetan ungkapan. Jika anda perlu membezakan antara sel formula dan sel nilai biasa pada masa jalan, periksa sama ada 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 Melayu