【Python×Excel操作】エクセルシートの編集作業を自動化するコード解説|できること11選

こんにちは、Kosei(@kay_diacc2)です!

PythonでExcelシートをどうやって編集するの?」Excel操作の自動化を検討するにあたり、編集操作のプログラムは自動化のコアと言えます。
本記事ではPythonでの主要なExcel編集操作方法を図やコード付きで詳しく解説していきます。

目次

Pythonによるエクセルシート編集の概要

本記事で解説するPythonプログラミングによるExcel操作イメージを下図に示します。また、編集前のテスト用エクセルファイルはサンプルとしてこちらのExcelファイルを用います。必要な際はダウンロードして利用してみましょう。

Excel編集前

Excel編集後

事前準備:Excelファイルの読込

PythonでExcelファイルを編集するには、Excelファイルの事前読込が必要です。

まず、同じディレクトリにPythonスクリプトとExcelファイルを用意します。Pythonスクリプトには下記のようにExcelを読み込むためのコードを記載しておきましょう。

""" (事前準備)ライブラリを詠み込む """
import openpyxl


""" (事前準備)Excelファイルを詠み込む """
#【要編集】Excelファイル名を入力
FileName = "python_test" 
#拡張子
Extension = ".xlsx" 
#更新するExcelワークシート番号(左から0,1,2)
Sheet_Num = 0


""" Excelファイル読込(以下編集不要) """
#Excelファイル
ExcelFileName = FileName + Extension
#ワークブック読込
workbook = openpyxl.load_workbook(ExcelFileName)
#ワークシート読込
Selectworksheet = workbook.get_sheet_names()[Sheet_Num]
worksheet = workbook.get_sheet_by_name(Selectworksheet)

事前準備完了です!Excelファイル編集操作を下記より学習していきましょう。

Pythonによる主要なExcelファイル編集操作11選

セルの値

セル値の編集は、2の方法で実行できます。例として、B2セルの値を修正する場合を示します。

worksheet["B2"] = "更新内容を入力"
worksheet.cell(row=2,column=2).value = "更新内容を入力"

フォント

フォントを変更する場合、font()メソッドを活用します。引数として文字サイズ(size)、色(color)、フォント種類(name)等を指定し、以下のように実行します。

from openpyxl.styles import Font

Font = Font(size=12,color="0000FF", name="Meiryo UI")
worksheet["B4"].font = Font

背景色

背景色の編集にはfill()メソッドを活用し、下記のように記載します。

Fill = openpyxl.styles.PatternFill(patternType='solid',start_color='FFD700', end_color='FFD700')
worksheet["B6"].fill = Fill

枠線

枠線の追加はborder()メソッドを活用します。引数として枠線のスタイル(style)や色を渡し実行します。

from openpyxl.styles.borders import Border, Side

Side = Side(style='thin', color='000000')
Border = Border(top=Side, bottom=Side, left=Side, right=Side)
worksheet["B8"].border = Border

セルの結合

セルの結合にはmerge_cells()メソッドを活用します。

例えば、B10セルからD10セルまで結合したい場合は下記のように実行します。

worksheet.merge_cells("B10:D10")

文字の配置

文字の配置変更にはaligment()メソッドを活用します。引数として平行位置(horizontal)、垂直位置(vertical)、傾き(textRotation)を渡し実行します。

from openpyxl.styles.alignment import Alignment

Alignment = Alignment(horizontal = 'right', vertical = 'center', textRotation = 90)
worksheet["B12"].alignment = Alignment

ハイパーリンク

ハイパーリンクをcellに埋め込む際は、下記のように記載します。

worksheet["B14"].hyperlink = "https://di-acc2.com"

シートの縦幅

シートの縦幅(高さ)を調整したい場合、下記のように記載します。

#[ ]は該当行番号
worksheet.row_dimensions[14].height = 100

シートの横幅

シートの横幅を調整したい場合、下記のように記載します。

#[ ]は該当列のアルファベット
worksheet.column_dimensions["C"].width = 30

シートの名前変更

シート名を変更する場合は、get_sheet_names()メソッドに変更対象のシート番号を指定し下記のように実行します。

# 名前変更
workbook.active.title = "sheet_name"
# 変更内容確認
print(workbook.get_sheet_names())

重要:更新内容を保存

最後にExcelファイル編集後は、編集内容が消えないように必ず保存しましょう。

workbook.save(ExcelFileName)

全体コードの共有

最後に本日紹介したコードを下記に整理しました。一気に編集内容を知りたい方はこちらを実行してみましょう。

""" (事前準備)ライブラリを詠み込む """
import openpyxl


""" (事前準備)Excelファイルを詠み込む """
#【要編集】Excelファイル名を入力
FileName = "python_test" 
# 拡張子
Extension = ".xlsx"

# 更新するExcelワークシート番号(左から0,1,2)
Sheet_Num = 0


""" Excelファイル読込(以下編集不要) """
#Excelファイル
ExcelFileName = FileName + Extension

#ワークブック読込
workbook = openpyxl.load_workbook(ExcelFileName)

#ワークシート読込
Selectworksheet = workbook.get_sheet_names()[Sheet_Num]
worksheet = workbook.get_sheet_by_name(Selectworksheet)

# ①セルの値
worksheet["B2"] = "Hello World"

# ②フォント
from openpyxl.styles import Font
Font = Font(size=12,color="0000FF", name="Meiryo UI")
worksheet["B4"].font = Font

# ③背景色
Fill = openpyxl.styles.PatternFill(patternType='solid',start_color='FFD700', end_color='FFD700')
worksheet["B6"].fill = Fill

# ④枠線
from openpyxl.styles.borders import Border, Side
Side = Side(style='thin', color='000000')
Border = Border(top=Side, bottom=Side, left=Side, right=Side)
worksheet["B8"].border = Border

# ⑤セル結合
worksheet.merge_cells("B10:D10")

# ⑥文字の配置
from openpyxl.styles.alignment import Alignment
Alignment = Alignment(horizontal = 'right', vertical = 'center', textRotation = 90)
worksheet["B12"].alignment = Alignment

# ⑦ハイパーリンク
worksheet["B14"].hyperlink = "https://di-acc2.com"

# ⑧シートの縦幅
worksheet.row_dimensions[14].height = 100

# ⑨シートの横幅
worksheet.column_dimensions["C"].width = 30

# ⑩シートの名前変更
workbook.active.title = "PYTHONEXCEL"

# 11 保存
workbook.save(ExcelFileName)

Excel×Pythonの自動化手法まとめ

本記事をご覧いただきありがとうございました!本記事ではExcel操作の自動化に役立つノウハウを多数配信しています。これからExcel作業の自動化に取り組みたい方向けには下記の記事が参考になるかと思います。是非ご覧ください!

PythonによるExcel自動操作を学習する上でのおすすめ教材もご紹介しています。

最後に

この記事が気に入ったら
フォローしてね!

本記事をシェア!
URLをコピーする
URLをコピーしました!
目次
閉じる