Trabalhando com Células
Visão geral
Cada planilha expõe um cells coleção que mapeia strings de endereço no estilo Excel (como "A1", "B3") Cell objetos. Você acessa uma célula diretamente por subscrito:
from aspose.cells_foss import Workbook, Cell
workbook = Workbook()
ws = workbook.worksheets[0]
##Access a cell by address
cell = ws.cells["A1"]Valores, fórmulas e informações de estilo residem no Cell objeto. Você pode ou mutar uma célula no local escrevendo em seu .value ou .formula propriedade, ou substituir a célula completamente atribuindo uma nova Cell instância para o endereço.
Lendo e Escrevendo Valores
Atribuir a cell.value para escrever uma string, inteiro ou ponto flutuante. Leia o mesmo propriedade de volta para recuperar o que foi armazenado.
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")O .value propriedade aceita qualquer escalar Python. A biblioteca armazena o tipo Python como está; nenhuma conversão implícita ocorre no momento da escrita.
Usando o Construtor Cell
O Cell construtor permite criar uma célula com um valor (e opcionalmente um fórmula) em uma única expressão. Atribua o resultante Cell objeto ao subscrição de endereço para colocá-lo na planilha.
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")O primeiro argumento posicional para Cell é o valor. Quando você passa None o célula é armazenada sem valor, o que é útil quando você pretende definir uma fórmula separadamente ou deseja uma célula explicitamente vazia em vez de ausente.
Células de Fórmula
Uma célula de fórmula armazena uma string de expressão compatível com Excel ao lado (ou em vez) de um valor estático. Existem duas maneiras de criar uma.
Via o construtor Cell — passe None como o valor e a string da fórmula como o 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")Via o .formula propriedade — definir a propriedade em uma célula 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")Referência Rápida de Fórmulas Comuns
| Objetivo | String de fórmula |
|---|---|
| Somar um intervalo | =SUM(A1:A10) |
| Média de um intervalo | =AVERAGE(A1:A10) |
| Valor máximo | =MAX(A1:A10) |
| Valor mínimo | =MIN(A1:A10) |
| Contar não vazias | =COUNT(A1:A10) |
| Valor condicional | =IF(A1>0,"Positive","Non-positive") |
| Procurar um valor | =VLOOKUP(D1,A1:B10,2,FALSE) |
| Concatenar strings | =CONCATENATE(A1," ",B1) |
Cadeias de fórmula devem começar com =. A biblioteca as armazena literalmente; Excel (ou um leitor compatível) avalia a expressão quando o arquivo é aberto.
Iterando Sobre Dados
Use um loop padrão Python para preencher uma coluna ou linha a partir de uma 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")O enumerate(iterable, start=N) padrão mapeia perfeitamente para os números de linhas do Excel porque as linhas do Excel são baseadas em 1. Começando em start=2 reserva a linha 1 para um(a) cabeçalho.
Tipos de Valor Mistos
O exemplo completo a seguir cria um pequeno conjunto de dados com uma linha de cabeçalho de texto, três linhas de dados contendo inteiros, floats e strings, e uma linha de fórmula que resume as colunas 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")Depois de abrir o arquivo no Excel (ou em qualquer aplicativo de planilha compatível), o D coluna e o B5 / D5 células exibirão os resultados avaliados das expressões de fórmula.
Dicas
None valor vs string vazia
Cell(None) e ws.cells["A1"].value = None criar uma célula sem valor armazenado valor — indistinguível de uma célula que nunca foi escrita na maioria das planilhas leitores. Cell("") ou ws.cells["A1"].value = "" criar uma célula que explicitamente contém uma string vazia, que alguns leitores e fórmulas tratam de forma diferente (por exemplo, =COUNT ignora células de string vazia da mesma forma que ignora células em branco células, mas =COUNTA as conta).
String de fórmula vs valor estático
Leitura .value de uma célula de fórmula retorna None (ou o último valor em cache se um foi definido antes da fórmula ser atribuída). Leitura .formula retorna o texto da expressão. Se precisar distinguir entre uma célula de fórmula e um célula de valor simples em tempo de execução, verifique se ws.cells["A1"].formula não está vazio:
cell = ws.cells["A1"]
if cell.formula:
print(f"Formula: {cell.formula}")
else:
print(f"Value: {cell.value}")Veja Também
- Referência da API: Documentação completa de classes e métodos para
aspose.cells_foss - Base de Conhecimento: Guias práticos orientados a tarefas
- Visão Geral do Produto: Resumo de recursos e capacidades
- Introdução / Instalação: pip install e configuração
- Blog: Apresentando Aspose.Cells FOSS: Visão geral da biblioteca e início rápido