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
| Tujuan | Rentetan 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
- Rujukan API: Dokumentasi penuh kelas dan kaedah untuk
aspose.cells_foss - Pangkalan Pengetahuan: Panduan cara-cara berorientasikan tugas
- Gambaran Produk: Ringkasan ciri-ciri dan keupayaan
- Mula Menggunakan / Pemasangan: pemasangan pip dan persediaan
- Blog: Memperkenalkan Aspose.Cells FOSS: Gambaran perpustakaan dan permulaan cepat