【Python×Excel】エクセル編集操作を自動化・できること11選|面倒な作業をプログラムで解決!

こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!

こんな方におすすめ
  • PythonでExcelシートをどうやって編集するの?
  • Pythonでの主要なExcel編集操作方法を図やコード付きで詳しく解説してほしい!
目次

【Python × Excel】エクセルシート編集でできること・概要解説

本記事ではPythonを活用して以下のExcel操作を行う方法を解説します。Pythonプログラム実行に際して、テスト用エクセルファイルをサンプルとして活用します(こちらのExcelファイルをダウンロードして動作確認からイメージを掴んでいきましょう!)

テスト用のサンプルファイルとPythonプログラムを活用して次のような操作を実行する方法を解説します。実際に手元で動作確認しながら方法を学習していきましょう。

テスト用エクセルファイル|Python実行前

テスト用エクセルファイル|Python実行後

【参考】Python × 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セルの値を修正する場合を示します。

方法(1)セルを直接指定で編集

worksheet["B2"] = "更新内容を入力"

方法(2)セル位置の行番号(row)と列番号(column)を指定して編集

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)

【Python × Excel】エクセル編集タスクの自動化・全体コード

最後に本日紹介したコードを下記に整理しました。

一気に編集内容を知りたい方はこちらの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)

# ①セルの値
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)

【参考】Pythonで面倒な作業を自動化!手法一挙公開中!

当サイトでは日々面倒な作業をPythonで自動化する方法を多数配信しております。日々の作業が飛躍的効率化できること間違いなしですので、以下気になった記事があれば併せてご覧ください。

【面倒なタスクをPythonで解決!】作業効率化の人気記事一覧




【参考】Pythonとは?・実現できること

最後に

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

本記事をシェア!
目次