「python 数値 エクセル書き込み」
という検索キーワードで、このサイト『インストラクターのネタ帳』へのアクセスがありました。
OpenPxXLでセルに数値を入力するサンプル
OpenPyXLを使う場合、以下のようなスクリプトで、セルに数値を入力できます。
wb = openpyxl.load_workbook(r'C:\temp\\oo.xlsx')
ws = wb.worksheets[0]
ws['A1'].value = 1000
ws.cell(2, 1).value = 2000
ws.cell(3, 1, 3000)
Cドライブのtempフォルダーにfoo.xlsxブックを用意しておいてから上記のスクリプトを実行すると、
ws = wb.worksheets[0]
で取得した先頭ワークシートの、A1セルに「1000」、A2セルに「2000」、A3セルに「3000」がそれぞれ書き込まれ、foo2.xlsxブックとして保存されます。
Excel VBAに似た雰囲気のコード
数値の入力を行っている最初の2行、
ws['A1'].value = 1000
ws.cell(2, 1).value = 2000
は、Excel VBAに似た雰囲気のコードです。
雰囲気が似ているだけで、当然まったく別のコードです。
Excel VBAのRangeプロパティを使う場合
Excel VBAの場合、wsがワークシートを表すオブジェクト変数の場合、Rangeプロパティを使って
ws.Range("A1").Value = 1000
で、wsシートのA1セルに「1000」を入力できます。
OpenPyXLの、
ws['A1'].value = 1000
は、Excel VBAのRangeプロパティを使ったコードに、雰囲気が似ています。
Excel VBAのCellsプロパティを使う場合
Excel VBAの場合、全セルを表すRangeオブジェクトを取得するCellsプロパティとRangeオブジェクトの既定プロパティを使って単独のセルを表すRangeオブジェクトを取得して、
ws.Cells(2, 1).Value = 2000
で、wsシートのA2セルに「2000」を入力できます。
OpenPyXLの
ws.cell(2, 1).value = 2000
は、Excel VBAのCellsプロパティを使ったコードに、雰囲気が似ています。
OpenPyXLのcellメソッドは値を引数に指定できる
OpenPxXLを使ってA3セルに「3000」を入力している
ws.cell(3, 1, 3000)
は、Excel VBAで見ることのない形のコードです。
A2セルに「2000」を入力する
ws.cell(2, 1).value = 2000
は、cellメソッドで取得したcellオブジェクトのvalue属性を使って入力しているのに対し、値を指定する第3引数まで使っています。
cellメソッドの第3引数で入力する数値を指定しているのが、
ws.cell(3, 1, 3000)
です。
数値をクォーテーションで括ると...
ちなみに、
ws['A1'].value = '1000'
ws['A1'].value = "1000"
のように、右辺の数値をシングルクォーテーションやダブルクォーテーションで括ると、文字列として数字が入力されます。
「python 数値 エクセル書き込み」
と検索なさった方は、このケースだったのかもしれません。
最終更新日時:2023-05-07 17:33
- Newer:論理値(TRUE・FALSE)をカウントしたい
- Older:Workbook関連オブジェクト式解説図版の索引
Home » Python » OpenPyXLの使い方 » OpenPyXLでセルに数値を入力する