Travailler avec les cellules

Vue d’ensemble

Chaque feuille de calcul expose une cells collection qui associe des chaînes d’adresses de type Excel (comme "A1", "B3") Cell à:

from aspose.cells_foss import Workbook, Cell

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

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

objets. Vous accédez à une cellule directement par indice: Cell Les valeurs, les formules et les informations de style résident toutes sur le objet. Vous pouvez .value soit muter une cellule sur place en écrivant dans son .formula ou, propriété, ou remplacer complètement la cellule en assignant une nouvelle Cell instance à l’adresse.


Lecture et écriture des valeurs

Attribuer à cell.value pour écrire une chaîne, un entier ou un float. Lire le même propriété pour récupérer tout ce qui a été stocké.

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

Le .value la propriété accepte n’importe quel scalaire Python. La bibliothèque stocke le type Python tel quel ; aucune conversion implicite n’est effectuée lors de l’écriture.


Utilisation du constructeur Cell

Le Cell constructeur vous permet de créer une cellule avec une valeur (et éventuellement un formule) en une seule expression. Attribuez le résultat Cell objet au indice d’adresse pour le placer dans la feuille.

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

Le premier argument positionnel de Cell est la valeur. Lorsque vous passez None le la cellule est stockée sans valeur, ce qui est utile lorsque vous avez l’intention de définir une formule séparément ou si vous souhaitez une cellule explicitement vide plutôt qu’une cellule absente.


Cellules de formule

Une cellule de formule stocke une chaîne d’expression compatible Excel à côté (ou à la place) d’une valeur statique. Il existe deux façons d’en créer une.

Via le constructeur Cell — passez None comme valeur et la chaîne de formule comme deuxième 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")

Via le .formula propriété — définir la propriété sur une cellule existante :

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

Référence rapide des formules courantes

ObjectifChaîne de formule
Somme d’une plage=SUM(A1:A10)
Moyenne d’une plage=AVERAGE(A1:A10)
Valeur maximale=MAX(A1:A10)
Valeur minimale=MIN(A1:A10)
Compter les non‑vides=COUNT(A1:A10)
Valeur conditionnelle=IF(A1>0,"Positive","Non-positive")
Rechercher une valeur=VLOOKUP(D1,A1:B10,2,FALSE)
Concaténer des chaînes=CONCATENATE(A1," ",B1)

Les chaînes de formule doivent commencer par =. La bibliothèque les stocke tel quel ; Excel (ou un lecteur compatible) évalue l’expression lorsque le fichier est ouvert.


Itération sur les données

Utilisez une boucle Python standard pour remplir une colonne ou une ligne à partir d’une liste :

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

Le enumerate(iterable, start=N) motif se mappe proprement aux numéros de lignes Excel car les lignes Excel sont indexées à partir de 1. Commencer à start=2 réserve la ligne 1 pour un en-tête.


Types de valeurs mixtes

L’exemple complet suivant crée un petit jeu de données avec une ligne d’en-tête texte, trois lignes de données contenant des entiers, des flottants et des chaînes, et une ligne de formule qui résume les colonnes numériques.

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

Après avoir ouvert le fichier dans Excel (ou toute application de tableur compatible), le D colonne et le B5 / D5 les cellules afficheront les résultats évalués des expressions de formule.


Conseils

None valeur vs chaîne vide

Cell(None) et ws.cells["A1"].value = None créez une cellule sans valeur stockée valeur — indistinguable d’une cellule qui n’a jamais été écrite dans la plupart des tableurs lecteurs. Cell("") ou ws.cells["A1"].value = "" créez une cellule qui explicitement contient une chaîne vide, que certains lecteurs et formules traitent différemment (par exemple, =COUNT ignore les cellules contenant une chaîne vide de la même manière qu’il ignore les cellules vides cellules, mais =COUNTA les compte).

Chaîne de formule vs valeur statique

Lecture .value d’une cellule de formule renvoie None (ou la dernière valeur mise en cache si une a été définie avant que la formule ne soit assignée). Lecture .formula renvoie le chaîne d’expression. Si vous devez distinguer une cellule de formule d’une cellule à valeur simple à l’exécution, vérifiez si ws.cells["A1"].formula n’est pas vide:

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

Voir aussi

 Français