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
| Objectif | Chaî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
- Référence API: Documentation complète des classes et méthodes pour
aspose.cells_foss - Base de connaissances: Guides pratiques orientés tâches
- Vue d’ensemble du produit: Résumé des fonctionnalités et capacités
- Premiers pas / Installation: pip install et configuration
- Blog : Présentation de Aspose.Cells FOSS: Aperçu de la bibliothèque et démarrage rapide