非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【Python】openpyxlでExcel操作(2)シートの操作

   

前回、PythonでExcelファイルを操作するopenpyxlの基本的なところについて書きました。今回はシート操作について紹介します。(前回はws = wb.activeという構文で現在のシートを指定していました。)

シート名のリストを取得

以下の構文ですべてのシート名を配列として得ることが出来ます。以下の例ではtest.xlsxというExcelファイル内に3つのシートがあってその名前を配列で得ています。

import openpyxl

wb = openpyxl.load_workbook("test.xlsx")
print(wb.sheetnames)

 

実行結果
['Sheet1', 'Sheet2', 'Sheet3']
 

 

シート名を指定してセルの値を取得

以下のようにシート名を指定してセルの値を得ることが出来ます。Sheet1というシートのA1セルに「Test」という文字列が入力された時の例です。

import openpyxl

wb = openpyxl.load_workbook("test.xlsx")
ws = wb["Sheet1"]
print(ws)
print(ws["A1"].value)
 

 

実行結果
['Sheet']
<Worksheet "Sheet">
Test
 

 

シート番号を指定してセルの値を取得

シート名ではなく何番目のシートかを指定する方法もあります。

import openpyxl

wb = openpyxl.load_workbook("test.xlsx")
ws = wb.worksheets[0]
print(ws)
print(ws["A1"].value)
print(ws.title) #シート名
 

 

実行結果
['Sheet']
<Worksheet "Sheet">
Test
Sheet1
 

 

シート名の変更変更

シート名の変更も簡単にできます。

import openpyxl

wb = openpyxl.load_workbook("test.xlsx")
ws = wb.worksheets[0]
print( ws.title ) 
# シート名の変更
ws.title = "Sheet0"
print( ws.title ) 
 

 

実行結果
Sheet1
Sheet0
 

 

シートの追加

シートを新規に追加するにはcreate_sheetメソッドを利用します。

import openpyxl

wb = openpyxl.load_workbook("test.xlsx")
print(wb.sheetnames)
#シートを最後に追加する
wb.create_sheet(title="Sheet4")
print(wb.sheetnames)
 

 

実行結果
['Sheet1', 'Sheet2', 'Sheet3']
['Sheet1', 'Sheet2', 'Sheet3', 'Sheet4']
 

 

スポンサーリンク

 - Python