Trabalhar com células

Resumo geral

Cada folha de cálculo expõe um cells coleção que mapeia cadeias de endereços no estilo Excel (como o "A1", "B3") a Cell Acede a uma célula diretamente por subscript:

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 todos vivem no sistema. Cell Objeto. ou mutar uma célula no lugar, escrevendo para o seu .value ou a) .formula propriedade, ou substituir a célula inteiramente atribuindo uma nova Cell instância para o endereço.


Valores de Leitura e Escrita

Acompanhar a cell.value para escrever uma cadeia, inteiro ou flutuante. ler o mesmo A 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")

A Comissão .value a propriedade aceita qualquer escalar Python. A biblioteca armazena o Python tipo as-is; nenhuma conversão implícita ocorre no tempo de escrita.


Usando o Construtor de Células

A Comissão Cell constructor permite que você crie uma célula com um valor (e opcionalmente um O valor da fórmula é definido como o número de palavras que se encontram na formula) numa única expressão. Cell Objeção à decisão do Tribunal de Justiça subscrição de endereço para a inserir na folha.

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 Quando você passa o valor de um sinal, é a sua taxa. None a) O célula é armazenado sem valor, o que é útil quando você pretende definir uma fórmula separadamente ou queira uma célula explícitamente em branco, ao invés de ausente.


Células de fórmula

Uma célula de fórmula armazena uma cadeia de expressões compatíveis com o Excel ao lado (ou em vez) de um valor estático. Há duas maneiras de criar um.

Através do constructor Cell. passagem None como o valor e a sequência de fórmula como 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 partir do .formula propriedade definir a propriedade numa 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")

Formulas comuns Referência rápida

Objectivo:Figura de fórmula:
Somar um intervalo=SUM(A1:A10)
Medida de um intervalo=AVERAGE(A1:A10)
Valor máximo=MAX(A1:A10)
Valor mínimo=MIN(A1:A10)
Contar não vazio=COUNT(A1:A10)
Valor condicional=IF(A1>0,"Positive","Non-positive")
Procura um valor.=VLOOKUP(D1,A1:B10,2,FALSE)
Cordas concatenadas=CONCATENATE(A1," ",B1)

As cadeias de fórmulas devem começar com: =.A biblioteca armazena-os em forma literal; Excel . (ou um leitor compatível) avalia a expressão quando o arquivo é aberto.


Iteração de dados

Use um loop Python padrão para preencher uma coluna ou linha 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")

A Comissão enumerate(iterable, start=N) Mapas de padrões limpos em números de linha do Excel porque as linhas do Excel são baseadas em 1. start=2 reservas para a linha 1 de um - Não.


Tipos de valores mistos

O exemplo completo a seguir constrói um pequeno conjunto de dados com uma linha de cabeçalho de texto, três linhas de informações contendo inteiros, floats e strings e uma fila 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")

Após abrir o ficheiro no Excel (ou em qualquer aplicação de planilha compatível), a) O D coluna e o número de páginas. B5 / D5 células irá exibir os resultados avaliados das expressões da fórmula.


Dicas de trabalho

None valor vs cadeia vazia

Cell(None) e a) ws.cells["A1"].value = None criar uma célula sem armazenado valor indistinguível de uma célula que nunca foi escrita na maioria das planilhas Os leitores. Cell("") ou a) ws.cells["A1"].value = "" criar uma célula que explicitamente contém uma cadeia vazia, que alguns leitores e fórmulas tratam de forma diferente. (por exemplo, =COUNT ignora células de cadeia vazia da mesma forma que ignoran o espaço em branco células, mas =COUNTA conta-os).

Formulário de cadeia versus valor estático

Leitura .value De uma célula de fórmula retorna None (ou o último valor armazenado em cache, se: A leitura de um dos dados foi definida antes da atribuição da fórmula). .formula Retorna o valor de: Se você precisa distinguir entre uma célula de fórmula e um célula de valor simples no 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}")

Ver também:

 Português