Home » Python » OpenPyXLの使い方 » OpenPyXLでセルに数値を入力する

OpenPyXLでセルに数値を入力する

動作検証バージョン:Windows 10 + Python 3.7.3 + OpenPyXL 2.6.2

「python 数値 エクセル書き込み」
という検索キーワードで、このサイト『インストラクターのネタ帳』へのアクセスがありました。

OpenPxXLでセルに数値を入力するサンプル

OpenPyXLを使う場合、以下のようなスクリプトで、セルに数値を入力できます。

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

wb.save(r'C:\temp\foo2.xlsx')

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

[スポンサードリンク]

Home » Python » OpenPyXLの使い方 » OpenPyXLでセルに数値を入力する

「OpenPyXLの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.