【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']
スポンサーリンク
