こんにちは、Kosei(@kay_diacc2)です!
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作業の自動化に取り組みたい方向けには下記の記事が参考になるかと思います。是非ご覧ください!
Excel×Pythonによる作業自動化ブログ一覧
身の回りの作業・仕事で使えるExcel自動化に特化したPythonプログラミング手法を多数公開!
PythonによるExcel自動操作を学習する上でのおすすめ教材もご紹介しています。
【Excel×Python】作業効率化の学習におすすめな入門本・動画教材8選
「Excel作業をプログラミング言語Pythonを用いて自動化したい!」「どの教材で勉強すれば良いの?」本記事ではこのような疑問にお応えします。
最後に

お問い合わせフォーム
上記課題に向けてご気軽にご相談下さい。
お問い合わせはこちら