セルの操作

概要

すべてのワークシートは、 cells Excel 形式のアドレス文字列をマッピングするコレクション (例えば "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"]

値、数式、スタイル情報はすべて Cell オブジェクトに格納されています。次のことが可能です セルをその場で変更するには、セルの .value または .formula プロパティに書き込むことで、, あるいは新しいものを代入してセル全体を置き換えることができます Cell インスタンスをアドレスに。.


値の読み書き

割り当て先 cell.value 文字列、整数、または浮動小数点数を書き込むため。 同じものを読み取ります。 プロパティを取得して、保存されたものを取り出す。.

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

その .value プロパティは任意の Python スカラーを受け入れます。ライブラリは Python 型はそのままです。書き込み時に暗黙の変換は行われません。.


Cell コンストラクタの使用

その Cell コンストラクタは、値(およびオプションで 数式)を単一の式で作成できます。結果として得られる Cell オブジェクトを シートに配置するためのアドレス添字。.

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

最初の位置引数は Cell は値です。渡すとき None その セルは値なしで保存されます。これは、数式を設定しようとする場合に便利です 別々に設定したり、欠落したセルではなく明示的に空白のセルが欲しい場合。.


数式セル

数式セルは、静的な値と共に(または代わりに)Excel 互換の式文字列を保持します。作成方法は 2 通りあります。.

Cell コンストラクタを使用して — パス None を値として、数式文字列を を第2引数として:

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

を介して .formula プロパティ — 既存のセルにプロパティを設定する:

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

一般的な数式 クイックリファレンス

目的数式文字列
範囲の合計=SUM(A1:A10)
範囲の平均=AVERAGE(A1:A10)
最大値=MAX(A1:A10)
最小値=MIN(A1:A10)
空でないセルの数=COUNT(A1:A10)
条件付きの値=IF(A1>0,"Positive","Non-positive")
値の検索=VLOOKUP(D1,A1:B10,2,FALSE)
文字列を連結する=CONCATENATE(A1," ",B1)

数式文字列は次で始まる必要があります =.。ライブラリはそれらをそのまま保存します;Excel (または互換リーダー)がファイルを開いたときに式を評価します。.


データの反復処理

標準的な Python ループを使用して、リストから列または行にデータを入力します:

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

その enumerate(iterable, start=N) パターンは Excel の行番号にきれいにマッピングされます Excel の行は 1 から始まるためです。開始位置は start=2 行 1 を ヘッダー。.


混在する値の型

以下の完全な例は、テキストのヘッダー行、整数・小数・文字列を含む 3 行のデータ行、そして数値列を集計する数式行を持つ小さなデータセットを構築します。.

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

Excel(または任意の互換スプレッドシートアプリケーション)でファイルを開いた後、, その D 列と B5 / D5 セルは評価された結果を表示します 数式式の.


ヒント

None 値 vs 空文字列

Cell(None) および ws.cells["A1"].value = None 格納されていないセルを作成する 値 — ほとんどのスプレッドシートで、書き込まれたことがないセルと区別がつかない リーダー。. Cell("") または ws.cells["A1"].value = "" 明示的にセルを作成する 空文字列を含むセルで、いくつかのリーダーや数式はこれを異なる扱いをします (例えば、, =COUNT 空文字セルを、空白セルを無視するのと同じ方法で無視します セルですが、 =COUNTA それらをカウントします)。.

数式文字列 vs 静的値

読み取り .value 数式セルからは返されます None (または、最後にキャッシュされた値が 数式が割り当てられる前に設定されていた場合)。読み取り .formula 返します 式文字列を返します。数式セルと プレーン値セルを実行時に区別する必要がある場合は、次を確認してください ws.cells["A1"].formula は空ではありません:

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

関連項目

 日本語