🐰
pythonでエクセルシート編集する
最近、初歩的な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使います。
jupyter labインストール
pip install jupyterlab
インストール完了したらコマンドで起動
jupyter-lab
これでpython実行環境はOK!
ちなみにjupyter notebookの後継がlabなのでどっちが悩む人はlabをインストールで良いと思います。
ファイル準備
もちろんですが私のmacにはexcelが入ってないので代わりにnumbersを使用しています。
※別のmacではファイルが開けなかったのでLibre Office使いました。
作成したいディレクトリまで移動します。
準備するファイルは以下
- pythonファイル
- エクセルの転記先ファイル
- エクセルの転記元ファイル
です。
まずはエクセルファイルを準備していきます。
コードを置きたいディレクトまで移動した後に
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