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

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

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

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

[スポンサードリンク]

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

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


import openpyxl
wb = openpyxl.load_workbook('C:\\temp\\foo.xlsx')
ws = wb.worksheets[0]
ws['A1'].value = 1000
ws.cell(2, 1).value = 2000
ws.cell(3, 1, 3000)
wb.save('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 数値 エクセル書き込み」
と検索なさった方は、このケースだったのかもしれません。

最終更新日時:2019-05-09 12:50

[スポンサードリンク]

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

TrackBack:0

TrackBack URL

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

「Python」の記事一覧

検索


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

.