3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

openpyxlでエクセルの値を操作する方法まとめ

Last updated at Posted at 2022-03-06

初心者pythonユーザーの備忘録です。ツッコミどころがあるかもしれませんが何卒暖かい目で見守ってください。誤り等あれば教えていただけると幸いです。

この記事が役立つかもしれない状況

  • excelの値をコピペする操作をpythonで自動化したい
  • プログラムの実行結果をexcelに自動入力したい
  • excel上の数字を取ってきて処理を行いたい
  • とにかくexcelが操作したい

使用するライブラリ

openpyxl

作業環境

MacBook Air (m1チップ)
os: Monterey ver.12.2.1
python 3.9.7

構文

エクセルのワークブックを読み込む

  • 下の例で「エクセルファイル.xlsx」がwbに代入される
  • パスは相対パスまたは絶対パス
wb = openpyxl.load_workbook("エクセルファイル.xlsxのパス")

扱うワークシートの指定

  • 同一ワークブック内の複数のワークシートのうち、扱うシートを指定する
  • 下の例でwbに代入されているワークブック内の「シート1」というワークシートがwsに代入される
ws = wb["シート1"]

セルの指定

  • 指定したシート内の指定した番地(座標?)のセルの値を取得する
  • 下の例ではwsに代入されているワークシート内の第a行第b列の値が取得される(a,bは自然数)
  • エクセルでは列番号がアルファベットだがcolumnには数字を使用する(A列ならcolumn=1)
ws.cell(row=a,column=b).value

同じ構文を使用してセルに数字を書き込んだり書き換えたりすることができる。その場合は処理後のエクセルファイルを新しい名前で保存する。(元のファイル名と同じ名前で保存すれば上書きされる)

ws.cell(row=a,column=b).value=10                  #数字を入力
wb.save("新しい名前.xlsx")                          #保存

その他知っておくと便利な関数

エクセルの列番号のアルファベット表記を数字に変換する

  • 例えば、エクセルの列番号「CV」は第何列かを調べたい時は下のようにする
print(openpyxl.utils.column_index_from_string("CV"))


実行結果

>>100

第100列でした。

エクセルの第N列のアルファベット表記を取得する

  • 上の逆です
openpyxl.utils.get_column_letter(100)


実行結果

>>CV

第100列は「CV」でした。

参考

udemyのこちらのコースを参考にしています。実践例も交えて詳しく解説されていてわかりやすいのでおすすめです
https://www.udemy.com/course/python-kaizen/

3
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?