【完全独学Python】ワークブックの作成・シートの操作はこれだけ覚えて!

Excel

この記事でわかること

  • PythonによるExcelファイルの作成・保存の方法がわかる!
  • ワークシートの追加の方法がわかる!
  • ワークシート名の変更方法がわかる!
  • ワークシートの一覧の取得方法がわかる!
  • アクティブなシートの取得方法がわかる!
  • ワークシートの削除の方法がわかる!
ゆーや
ゆーや

openpyxlというモジュールを使っていくよ!

Workbookモジュールとは

Workbookモジュールは、Excelファイル全体を操作するための基本的なクラスです。

このクラスを使って、新しいExcelファイルを作成したり、既存のファイルを読み込んだりすることができます。

ゆーや
ゆーや

ここから実際に使っていくよ!

新しいExcelファイルを作成する

import openpyxl

# 格納するファイルパス(outputというフォルダを作成しておくこと)
filepath = "./output/"

# 作成するExcelファイルのファイル名
filename = "test.xlsx"

# ワークブックの作成
wb = openpyxl.Workbook()

# ワークブックの保存
wb.save(filepath + filename)
ゆーや
ゆーや

workbook.pyにサンプルコードを書いて実行すると、
outputにtest.xlsxが生成されるよ!
Workbook()save()を覚えておこう!

新しいシートを追加

import openpyxl

# 格納するファイルパス
filepath = "./output/"

# 作成するExcelファイルのファイル名
filename = "test.xlsx"

# ワークブックの作成
wb = openpyxl.Workbook()

# 新しいシートの追加
wb.create_sheet(title="新しいシート")

# ワークブックの保存
wb.save(filepath + filename)
ゆーや
ゆーや

create_sheet(title=”シート名”)でシートが作れる!
覚えやすくていいね!

シートの名前変更

import openpyxl

# 格納するファイルパス
filepath = "./output/"

# 作成するExcelファイルのファイル名
filename = "test.xlsx"

# ワークブックの作成
wb = openpyxl.Workbook()

# 新しいシートの追加(Worksheetモジュールをwsに格納)
ws = wb.create_sheet(title="新しいシート")

# シート名の変更
ws.title = "新しいシート_更新"

# ワークブックの保存
wb.save(filepath + filename)
ゆーや
ゆーや

作成したワークシート(Worksheetモジュール)のtitleに変更したい名前を設定すればOK!

Worksheetモジュールの取得

import openpyxl

# 格納するファイルパス
filepath = "./output/"

# 作成するExcelファイルのファイル名
filename = "test.xlsx"

# ワークブックの作成
wb = openpyxl.Workbook()

# 新しいシートの追加(Worksheetモジュールをwsに格納)
ws = wb.create_sheet(title="新しいシート")

# ワークシートの一覧を取得
ws_list = wb.worksheets

print(ws_list[0])
print(ws_list[1])

# ワークブックの保存
wb.save(filepath + filename)
ゆーや
ゆーや

もともとあるシート「Sheet」と追加した「新しいシート」がきちんと取得できているね!
こうすれば、1つ目のシートの名前を変更したいときはws_list[0].titleを変更すればいいね!

ワークシート名の取得

import openpyxl

# 格納するファイルパス
filepath = "./output/"

# 作成するExcelファイルのファイル名
filename = "test.xlsx"

# ワークブックの作成
wb = openpyxl.Workbook()

# 新しいシートの追加(Worksheetモジュールをwsに格納)
ws = wb.create_sheet(title="新しいシート")

# ワークシートの一覧を取得
ws_name_list = wb.sheetnames

print(ws_name_list[0])
print(ws_name_list[1])

# ワークブックの保存
wb.save(filepath + filename)
ゆーや
ゆーや

今度はWorksheetモジュールではなく、ワークシート名だけ取得できるね!

必要に応じて、使い分けよう!

アクティブなシートを取得・変更

# アクティブなシートを取得・変更
import openpyxl

# 格納するファイルパス
filepath = "./output/"

# 作成するExcelファイルのファイル名
filename = "test.xlsx"

# ワークブックの作成
wb = openpyxl.Workbook()

# 新しいシートの追加(Worksheetモジュールをwsに格納)
ws = wb.create_sheet(title="新しいシート")

# アクティブなシートを取得
active_sheet = wb.active
print(active_sheet)

# アクティブなシートを変更
wb.active = ws
print(wb.active)

# ワークブックの保存
wb.save(filepath + filename)
ゆーや
ゆーや

Excelを扱うときは、

今、どのシートがアクティブなのか」を意識しなくてはならない場面がよくあるよ!

(VBAなどやったことある人はこの苦労わかってくれるはず。。)

しっかり押さえておこう!

ワークシートの削除

import openpyxl

# 格納するファイルパス
filepath = "./output/"

# 作成するExcelファイルのファイル名
filename = "test.xlsx"

# ワークブックの作成
wb = openpyxl.Workbook()

# 新しいシートの追加(Worksheetモジュールをwsに格納)
ws = wb.create_sheet(title="新しいシート")

# ワークシートの削除
wb.remove(wb.active)

# ワークブックの保存
wb.save(filepath + filename)
ゆーや
ゆーや

新しいシート以外なくなっている!
removeで削除したいWorkbookモジュールを指定すればいいね!

コメント

タイトルとURLをコピーしました