【Python】openpyxlライブラリを使ったexcel操作基礎

カテゴリ:Python 投稿:2022年6月10日0:11、更新:2022年6月11日23:25

・記事の概要 

openpyxlライブラリでの基本的な操作のメモになります。

業務効率化などで使う場合はExcelの利用シーンも多いと思い、またセル書式系の操作をする場合も割とあるのかなと思ってopenpyxlを利用します。


・前準備 

事前ににインストールしておきます。

pip install openpyxl


・ファイル操作メモ 

セル操作方法などは記載方がいくつか用意されていたりします。

import openpyxl

.

.

.

#ファイル読み込み

wb = openpyxl.load_workbook("hoge.xlsx")

#path指定の場合

wb = openpyxl.load_workbook("./Files/hoge.xlsx")


#シートの取得(シート名指定)

ws = wb["sheet1"]

#インデックス指定もできる

ws = wb.worksheets[0]


#指定セルの値取得

ws["B2"].value

#指定セルの値取得(行,列指定)

ws.cell(row=2 ,column=2).value

#省略表記も可能

ws.cell(2,2).value


#セルに値を入れる

ws.cell(row=3 ,column=3).value = ws.cell(row=2 ,column=2).value

ws.cell(row=4 ,column=4).value = 100


#ファイル保存(同名なら上書き)

wb.save("hoga.xlsx")


#BファイルからAファイルに複数シートの特定範囲セルをコピーする場合

wb_A = openpyxl.load_workbook("hogeA.xlsx") wb_B = openpyxl.load_workbook("hogeB.xlsx")


sheet_list=["sheet1","sheet2","sheet3"]

for sheet in sheet_list: #シート分の処理をループ ws_A=wb_A[sheet] ws_B=wb_B[sheet]

for i in range(ws_B.max_column): #列の最大値を取ってそれ分のループ

#行列はそれぞれのexcelの配置によって変える

ws_A.cell(row=2 ,column=2+i).value = ws_B.cell(row=2 ,column=3+i).value

ws_A.cell(row=3 ,column=2+i).value = ws_B.cell(row=3 ,column=3+i).value

ws_A.cell(row=4 ,column=2+i).value = ws_B.cell(row=4 ,column=3+i).value


wb_matome.save("hogeA_Bcopy.xlsx")


コメント一覧

コメント投稿ページへ


書いている人

のぎ
PG->SE->PMとして働き、現在はIT企業で新卒採用の担当をしています。長期育休取得明けで0歳娘の対応に毎日バタバタです。笑
採用業務をしつつ社内利用ツールなど作成しており、当ブログも勉強の一環でコーディングして作成しています。 エンジニア領域、人事・採用領域、育児関連など発信していきます。