Trabajando con Celdas
Visión general
Cada hoja de cálculo expone una cells colección que asigna cadenas de direcciones al estilo de Excel (como "A1", "B3") a Cell objetos. Accedes a una celda directamente mediante subíndice:
from aspose.cells_foss import Workbook, Cell
workbook = Workbook()
ws = workbook.worksheets[0]
##Access a cell by address
cell = ws.cells["A1"]Los valores, fórmulas e información de estilo residen en el Cell objeto. Puedes ya sea mutar una celda en su lugar escribiendo en su .value o .formula propiedad, o reemplazar la celda completamente asignando una nueva Cell instancia a la dirección.
Lectura y Escritura de Valores
Asignar a cell.value para escribir una cadena, entero o flotante. Leer lo mismo propiedad para recuperar lo que se haya almacenado.
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")El .value propiedad acepta cualquier escalar Python. La biblioteca almacena el tipo Python tal cual; no ocurre conversión implícita al escribir.
Usando el Constructor Cell
El Cell constructor le permite crear una celda con un valor (y opcionalmente un fórmula) en una sola expresión. Asigne el resultante Cell objeto al subíndice de dirección para colocarlo en la hoja.
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")El primer argumento posicional para Cell es el valor. Cuando pasas None el la celda se almacena sin valor, lo que es útil cuando pretendes establecer una fórmula por separado o deseas una celda explícitamente en blanco en lugar de una ausente.
Celdas de Fórmula
Una celda de fórmula almacena una cadena de expresión compatible con Excel junto a (o en lugar de) un valor estático. Hay dos formas de crear una.
A través del constructor Cell — pasa None como el valor y la cadena de fórmula como el segundo argumento:
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")A través del .formula propiedad — establecer la propiedad en una celda existente:
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")Referencia Rápida de Fórmulas Comunes
| Propósito | Cadena de fórmula |
|---|---|
| Sumar un rango | =SUM(A1:A10) |
| Promedio de un rango | =AVERAGE(A1:A10) |
| Valor máximo | =MAX(A1:A10) |
| Valor mínimo | =MIN(A1:A10) |
| Contar celdas no vacías | =COUNT(A1:A10) |
| Valor condicional | =IF(A1>0,"Positive","Non-positive") |
| Buscar un valor | =VLOOKUP(D1,A1:B10,2,FALSE) |
| Concatenar cadenas | =CONCATENATE(A1," ",B1) |
Las cadenas de fórmula deben comenzar con =. La biblioteca las almacena literalmente; Excel (o un lector compatible) evalúa la expresión cuando se abre el archivo.
Iterando Sobre Datos
Utilice un bucle estándar Python para rellenar una columna o fila a partir de una lista:
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")El enumerate(iterable, start=N) patrón se asigna limpiamente a los números de fila de Excel porque las filas de Excel son basadas en 1. Comenzando en start=2 reserva la fila 1 para un encabezado.
Tipos de Valor Mixtos
El siguiente ejemplo completo crea un pequeño conjunto de datos con una fila de encabezado de texto, tres filas de datos que contienen enteros, flotantes y cadenas, y una fila de fórmula que resume las columnas numéricas.
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")Después de abrir el archivo en Excel (o cualquier aplicación de hoja de cálculo compatible), el D columna y la B5 / D5 las celdas mostrarán los resultados evaluados de las expresiones de fórmula.
Consejos
None valor vs cadena vacía
Cell(None) y ws.cells["A1"].value = None crea una celda sin valor almacenado valor — indistinguible de una celda que nunca se escribió en la mayoría de las hojas de cálculo lectores. Cell("") o ws.cells["A1"].value = "" crea una celda que explícitamente contiene una cadena vacía, que algunos lectores y fórmulas tratan de manera diferente (por ejemplo, =COUNT ignora las celdas de cadena vacía de la misma manera que ignora las celdas en blanco celdas, pero =COUNTA las cuenta).
Cadena de fórmula vs valor estático
Lectura .value de una celda de fórmula devuelve None (o el último valor en caché si se estableció antes de que se asignara la fórmula). Lectura .formula devuelve el texto de la expresión. Si necesitas distinguir entre una celda de fórmula y una celda de valor simple en tiempo de ejecución, verifica si ws.cells["A1"].formula no está vacío:
cell = ws.cells["A1"]
if cell.formula:
print(f"Formula: {cell.formula}")
else:
print(f"Value: {cell.value}")Ver también
- Referencia de API: Documentación completa de clases y métodos para
aspose.cells_foss - Base de Conocimientos: Guías prácticas orientadas a tareas
- Resumen del Producto: Resumen de características y capacidades
- Comenzando / Instalación: instalación y configuración con pip
- Blog: Presentando Aspose.Cells FOSS: Visión general de la biblioteca y guía rápida