🐰

pythonでエクセルシート編集する

2023/05/30に公開

最近、初歩的なpythonエクセル操作を覚えたので備忘録として残します。

環境

  • OS MacOS Ventura 13.0
  • CPU Apple M2

pythonバージョン

  • python 3.9

まずは必要物の準備

PC買い替えてからまさかのpythonを自分のPCに入れる事がなかったので久しぶりにインストールしましたw

とりあえず「openpyxl」というものが必要なのでpipインストールしていきます。

pip install openpyxl

必要最低限の解説にしたいので3つのファイルを作っていきます。

あとプログラムを各行確認したいのでjupyter lab使います。

https://jupyter.org/install

jupyter labインストール

pip install jupyterlab

インストール完了したらコマンドで起動

jupyter-lab

これでpython実行環境はOK!

ちなみにjupyter notebookの後継がlabなのでどっちが悩む人はlabをインストールで良いと思います。

ファイル準備

もちろんですが私のmacにはexcelが入ってないので代わりにnumbersを使用しています。

※別のmacではファイルが開けなかったのでLibre Office使いました。

作成したいディレクトリまで移動します。

準備するファイルは以下

  1. pythonファイル
  2. エクセルの転記先ファイル
  3. エクセルの転記元ファイル

です。

まずはエクセルファイルを準備していきます。
コードを置きたいディレクトまで移動した後に

touch index.xlsx
touch test.xlsx

ではjupyter-labを立ち上げます。

ブラウザで立ち上がればOKです。

ipynbファイルを作成します。

以下がコードになります。
本当は分割して実行していますが今回はまとめて貼ります。

# 文字長くてめんどいのでxlとする。慣用的じゃないと思う
import openpyxl as xl
# ファイルを指定する
wb = xl.load_workbook("index.xlsx")
# シートを指定
ws = wb.worksheets[0]
# 値を持ってくるファイルを指定
wb_1 = xl.load_workbook("test.xlsx")

ws_1 = wb_1.worksheets[0]
# セルを指定 cell(行, 列)の番号
ws.cell(2, 1).value = ws_1.cell(2, 1).value
# ファイルの上書き保存
wb.save("index.xlsx")

これを実行してエクセルファイルに文字が移っていたらOKです。

Discussion