こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!
- PythonでExcelシートをどうやって編集するの?
- Pythonでの主要なExcel編集操作方法を図やコード付きで詳しく解説してほしい!
【Python × Excel】エクセルシート編集でできること・概要解説
本記事ではPythonを活用して以下のExcel操作を行う方法を解説します。Pythonプログラム実行に際して、テスト用エクセルファイルをサンプルとして活用します(こちらのExcelファイルをダウンロードして動作確認からイメージを掴んでいきましょう!)
テスト用のサンプルファイルとPythonプログラムを活用して次のような操作を実行する方法を解説します。実際に手元で動作確認しながら方法を学習していきましょう。
テスト用エクセルファイル|Python実行前
テスト用エクセルファイル|Python実行後
【参考】Python × Excelによる作業効率化・おすすめ学習法
【Excel×Python】作業効率化の学習におすすめな入門本・動画教材8選
「Excel作業をプログラミング言語Pythonを用いて自動化したい!」「どの教材で勉強すれば良いの?」本記事ではこのような疑問にお応えします。
事前準備: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とは?・実現できること
最後に
お問い合わせフォーム
上記課題に向けてご気軽にご相談下さい。
お問い合わせはこちら