Darbas su langeliais

Apžvalga

Kiekvienas darbalapis atskleidžia cells kolekciją, kuri susieja Excel stiliaus adreso eilutes (pvz. "A1", "B3") į Cell objektus. Jūs pasiekiate ląstelę tiesiogiai per indeksą:

from aspose.cells_foss import Workbook, Cell

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

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

Vertės, formulės ir stiliaus informacija yra Cell objekte. Galite arba keisti langelį tiesiogiai rašant į jo .value arba .formula savybę, arba visiškai pakeiskite ląstelę priskirdami naują Cell instanciją adresui.


Reikšmių skaitymas ir rašymas

Priskirkite cell.value rašyti eilutę, sveikąjį skaičių arba slankųjį skaičių. Perskaitykite tą patį savybę atgal, kad gautumėte tai, kas buvo saugoma.

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

Ši .value savybė priima bet kurį Python skalarą. Biblioteka saugo Python tipą tokį, koks yra; rašymo metu neįvyksta jokios netiesioginės konversijos.


Naudojant Cell konstruktorių

Ši Cell konstruktorius leidžia sukurti ląstelę su verte (ir, jei norite, formulę) vienoje išraiškoje. Priskirkite gautą Cell objektą į adreso indeksą, kad jį patalpintumėte lape.

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

Pirmasis pozicinis argumentas, skirtas Cell yra reikšmė. Kai perduodate None tai langelis saugomas be reikšmės, kas yra naudinga, kai ketinate nustatyti formulę atskirai arba norite aiškiai tuščio langelio, o ne trūkstamo.


Formulės langeliai

Formulės langelis saugo Excel suderinamą išraiškos eilutę kartu (arba vietoje) su statine reikšme. Yra du būdai ją sukurti.

Naudojant Cell konstruktorių — perduokite None kaip reikšmę ir formulės eilutę kaip antrąjį argumentą:

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

Naudojant .formula savybę — nustatykite savybę esamame langelyje:

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

Dažniausiai naudojamų formulių greita nuoroda

TikslasFormulės eilutė
Suma diapazone=SUM(A1:A10)
Vidurkis diapazone=AVERAGE(A1:A10)
Maksimali reikšmė=MAX(A1:A10)
Mažiausia reikšmė=MIN(A1:A10)
Skaičiuoti ne tuščius=COUNT(A1:A10)
Sąlyginė reikšmė=IF(A1>0,"Positive","Non-positive")
Ieškoti reikšmės=VLOOKUP(D1,A1:B10,2,FALSE)
Sujungti eilutes=CONCATENATE(A1," ",B1)

Formulės eilutės turi prasidėti =. Biblioteka saugo jas tiesiogiai; Excel (arba suderinamu skaitytuvu) įvertina išraišką, kai failas atveriamas.


Iteravimas per duomenis

Naudokite standartinę Python ciklą, kad užpildytumėte stulpelį arba eilutę iš sąrašo:

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

Ši enumerate(iterable, start=N) šablonas tiesiogiai atitinka Excel eilučių numerius nes Excel eilutės yra numeruojamos nuo 1. Pradedant nuo start=2 rezervuoja 1-ąją eilutę antraštės.


Mišrių verčių tipai

Toliau pateiktas pilnas pavyzdys sukuria nedidelį duomenų rinkinį su tekstine antraštės eilute, trimis duomenų eilutėmis, kuriose yra sveikieji skaičiai, slankiojo kablelio skaičiai ir eilutės, bei formulės eilute, kuri apibendrina skaitmeninius stulpelius.

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

Atidarius failą Excel programoje (arba bet kurioje suderinamoje skaičiuoklės programoje), ši D stulpelis ir the B5 / D5 langeliai rodys įvertintus rezultatus formulių išraiškų.


Patarimai

None reikšmė vs tuščia eilutė

Cell(None) ir ws.cells["A1"].value = None sukurkite langelį be saugoto reikšmės — neatskiriama nuo langelio, kuris niekada nebuvo įrašytas daugumoje skaičiuoklių skaitytuvų. Cell("") arba ws.cells["A1"].value = "" sukurkite langelį, kuris aiškiai turi tuščią eilutę, kurią kai kurie skaitytuvai ir formulės elgiasi kitaip (pavyzdžiui, =COUNT ignoruoja tuščių eilutės langelius taip pat, kaip ignoruoja tuščius langelius, tačiau =COUNTA skaičiuoja juos).

Formulės eilutė vs statinė reikšmė

Skaitymas .value iš formulės langelio grąžina None (arba paskutinę išsaugotą reikšmę, jei ji buvo nustatyta prieš priskiriant formulę). Skaitymas .formula grąžina išraiškos eilutę. Jei reikia atskirti formulės langelį nuo a paprasto vertės langelis vykdymo metu, patikrinkite, ar ws.cells["A1"].formula yra ne tuščias:

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

Taip pat žiūrėkite

 Lietuvių