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
| Tikslas | Formulė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
- API dokumentacija: Pilna klasės ir metodų dokumentacija
aspose.cells_foss - Žinių bazė: Užduotimis orientuoti vadovai
- Produkto apžvalga: Savybių ir galimybių santrauka
- Pradžia / Įdiegimas: pip įdiegimas ir konfigūracija
- Tinklaraštis: Pristatome Aspose.Cells FOSS: Bibliotekos apžvalga ir greitas pradžia