スポンサーリンク

Excel書き込みを自動化!Python(OpenPyXL)の書き込み方法まとめ

Excel書き込みを自動化!Python(OpenPyXL)の書き込み方法まとめ

 

★悩み★
・PythonでExcelファイルの指定したセルに「データ書き込み」ってできる?
・PythonのOpenPyXLライブラリを用いてExcelへ書き込む方法を知りたい。
・そもそもOpenPyXLって何?インストールとか必要なの?



こういった「悩み」に答えます。
 

★本記事の内容★
① OpenPyXLとは?【PythonのExcelを操作するためのライブラリです】
② PythonとOpenPyXLをインストールする手順
③ PythonのOpenPyXLを使った「Excel書き込み方法」のまとめ



これからご紹介する「Excel書き込みを自動化!Python(OpenPyXL)の書き込み方法まとめ」を実践したことで、10分以内で「PythonのOpenPyXLで、Excelの指定したセルにデータを書き込み」できました。
 

記事の前半では「OpenPyXLとは何か?」や「PythonとOpenPyXLのインストール手順」を解説します。
記事の後半では「PythonのOpenPyXLを使って、『指定したセル』や『指定したシートの最終行』にデータを書き込みする方法(プログラム掲載あり)」を紹介します。
 

この記事を読み終えることで、「Excelを開くことなく、Excel内のシートやセルにデータを書き込みできる」状態になります。 
 


ちなみに、「OpenPyXLでExcelを読み込む手順」に関して知りたい方は、以下の記事をご覧ください。
 



ちなみに、「OpenPyXLでExcelのセルに数式や関数を書き込みする手順」に関して知りたい方は、以下の記事をご覧ください。
 


 

OpenPyXLとは?【PythonのExcelを操作するためのライブラリです】

OpenPyXLとは?【PythonのExcelを操作するためのライブラリです】


「OpenPyXLとは?」に関してご紹介します。
 

OpenPyXLとは、PythonのExcelを操作するためのライブラリです。



OpenPyXLの「概要」や「ライセンス」を知りたい方は、以下の記事をご覧ください。
 



以上が、「OpenPyXLとは?」となります。
 

OpenPyXLは、無料で使えるExcel操作ライブラリです。
PythonでExcelの書き込みや読み込みをしたい場合、使ってみましょう。


 

PythonとOpenPyXLをインストールする手順

PythonとOpenPyXLをインストールする手順


「PythonとOpenPyXLをインストールする手順」に関してご紹介します。
 

★PythonとOpenPyXLをインストールする流れ★
手順1:Pythonをインストール
手順2:Pythonの「OpenPyXL」ライブラリをインストール



上記の流れで、「PythonとOpenPyXLをインストール」できます。
 

上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2022年4月22日
動作確認済み環境:macOS



以降で、上記「PythonとOpenPyXLをインストールする流れ」の各手順に関してご説明します。
 

手順1:Pythonをインストール【OpenPyXLの利用に必要】

「手順1:Pythonをインストール」に関してご説明します。
 

OpenPyXLをインストールするためにもPythonをインストールしましょう。



「Pythonのインストール手順」に関しては、以下の記事をご覧ください。
 


 

既にPythonをインストールされている方は、本手順を省略してください。



以上で、「手順1:Pythonをインストール」は完了です。
 

手順2:Pythonの「OpenPyXL」ライブラリをインストール

「手順2:Pythonの「OpenPyXL」ライブラリをインストール」に関してご説明します。
 

PythonでExcelのセルに書き込みするために、OpenPyXLをインストールしましょう。



「OpenPyXLのインストール手順」に関しては、以下の記事をご覧ください。
 



以上で、『手順2:Pythonの「openpyxl」ライブラリをインストール』は完了です。
 

上記の流れで、PythonのOpenPyXLを用いてExcelのセルに書き込みする為の準備ができました。


 

PythonのOpenPyXLを使った「Excel書き込み方法」のまとめ

PythonのOpenPyXLを使った「Excel書き込み方法」のまとめ


『PythonのOpenPyXLを使った「Excel書き込み方法」のまとめ』に関してご紹介します。
 

★PythonのOpenPyXLを使った「Excel書き込み方法」のまとめ★
・PythonでExcelファイルの書き込み(新規作成/上書き保存)
・PythonでExcelファイルにシートの追加/コピー/削除
・Pythonで「セルの値」の書き込み/削除/更新
・PythonでExcelファイルの指定したシートに「行」と「列」を挿入/削除
・Pythonのfor文(繰り返し処理)でExcelの最終行に繰り返し書き込み
・羅線/フォント設定/文字寄せ設定などの便利な書き込み方法



PythonのOpenPyXLライブラリを利用することで、上記のプログラムを簡単に実装できます。
 

上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2022年4月22日
動作確認済み環境:macOS



以降で、上記『PythonのOpenPyXLを使った「Excel書き込み方法」のまとめ』の各項目に関してご説明します。
 

PythonでExcelファイルの書き込み(新規作成/上書き保存)

「PythonでExcelファイルの書き込み(新規作成/上書き保存)」に関してご説明します。
 

PythonのOpenPyXLライブラリを利用することで、簡単にExcelファイルの新規作成と上書き保存ができます。



PythonのOpenPyXLを用いて「Excelファイルを新規作成する」プログラムは、以下となります。
プログラム中の「適宜変更」と書いてある部分は、自分用に書き換えてください。

import openpyxl

new_excel_file = "excel-created-by-python-openpyxl.xlsx" # 新規作成したいExcelファイル名(適宜変更)

book = openpyxl.Workbook()
book.save(new_excel_file) # Excelファイルを新規作成
print("PythonのOpenPyXLでExcelファイルを新規作成しました。")



上記のプログラムを「openpyxl-create-excel.py」というファイル名で保存しましょう。
 

保存後、以下のコマンドを実行し、openpyxl-create-excel.pyを実行してください。

$ python openpyxl-create-excel.py
PythonのOpenPyXLでExcelファイルを新規作成しました。
$ ls -l excel-created-by-python-openpyxl.xlsx
-rw-r--r--@ 1 hero  staff  4763  4 22 13:51 excel-created-by-python-openpyxl.xlsx



上記のように「excel-created-by-python-openpyxl.xlsx」が表示された場合、「OpenPyXLでExcelファイルを新規作成できた」と判断できます。
 

また、openpyxl-create-excel.pyを再度実行することで、上書き保存ができます。

$ python openpyxl-create-excel.py
PythonのOpenPyXLでExcelファイルを新規作成しました。
$ ls -l excel-created-by-python-openpyxl.xlsx
-rw-r--r--@ 1 hero  staff  4763  4 22 13:53 excel-created-by-python-openpyxl.xlsx



コマンド実行後、「ファイルの更新日付が更新されていた」場合、「PythonのOpenPyXLでExcelファイルを上書き保存できた」と判断できます。
 

以上が、「PythonでExcelファイルの書き込み(新規作成/上書き保存)」となります。
 

PythonでExcelファイルにシートの追加/コピー/削除

「PythonでExcelファイルにシートの追加/コピー/削除」に関してご説明します。
 

PythonのOpenPyXLライブラリを利用することで、Excelファイルにシートの追加・コピー・削除ができます。


 

Excelファイルにシートを追加

PythonのOpenPyXLを用いて「Excelファイルにシートを新規追加する」プログラムは、以下となります。
プログラム中の「適宜変更」と書いてある部分は、自分用に書き換えてください。

import openpyxl

new_sheet_name = "新規シート" # 新規で追加したいExcelシート名(適宜変更)

book = openpyxl.load_workbook('excel-created-by-python-openpyxl.xlsx') 
book.create_sheet(new_sheet_name) # シートを新規追加
book.save('excel-created-by-python-openpyxl.xlsx') # Excelファイルを上書き更新

print("PythonのOpenPyXLでExcelファイルのシートを新規追加しました。")



上記のプログラムを「openpyxl-add-excel-sheet.py」というファイル名で保存しましょう。
 

保存後、以下のコマンドを実行し、openpyxl-add-excel-sheet.pyを実行してください。

$ python openpyxl-add-excel-sheet.py
PythonのOpenPyXLでExcelファイルのシートを新規追加しました。
$ 



上記のように「PythonのOpenPyXLでExcelファイルのシートを新規追加しました。」が表示された場合、「OpenPyXLでExcelファイルにワークシートを新規追加できた」と判断できます。
 

また、作成されたExcelファイルを開き、新しいシートが追加されていることを確認しましょう。(下図の赤枠)
 

OpenPyXLでExcelファイルにワークシートを新規追加


 

既存のファイルにシートを追加したい場合は、対象のファイルを読み込み、シート追加後(create_sheet実行後)、同じファイルパスに書き込みします(saveを実行)。そうすることで、既存Excelファイルを上書き更新できます。


 

Excelファイルでシートをコピー

PythonのOpenPyXLを用いて「Excelファイルでシートをコピーする」プログラムは、以下となります。
プログラム中の「適宜変更」と書いてある部分は、自分用に書き換えてください。

import openpyxl

target_excel_path = "sample.xlsx" # 書き込みたいExcelのPATH(適宜変更)
book = openpyxl.load_workbook(target_excel_path) # Excelを開く

copy_sheet = book.copy_worksheet(book['前版の内容']) # シートをコピー
copy_sheet.title = '前版の内容OLD' # コピーしたシートの名称を変更
book.save(target_excel_path) # 上書き保存
book.close() # Excelを閉じる

print("PythonのOpenPyXLでExcelファイルでシートをコピーしました。")



上記のプログラムを「openpyxl-copy-excel-sheet.py」というファイル名で保存しましょう。
 

保存後、以下のコマンドを実行し、openpyxl-copy-excel-sheet.pyを実行してください。

$ python openpyxl-copy-excel-sheet.py
PythonのOpenPyXLでExcelファイルでシートをコピーしました。
$ 



コマンド実行後、「PythonのOpenPyXLでExcelファイルでシートをコピーしました。」が表示された場合、「正常にシートをコピーできた」と判断できます。
 

また、上書き保存されたExcelファイルを開き、シートがコピーされていることを確認しましょう。(下図の赤枠)
 

Excelファイルでシートをコピー


 

Excelファイルでシートを削除

PythonのOpenPyXLを用いて「Excelファイルでシートを削除する」プログラムは、以下となります。
プログラム中の「適宜変更」と書いてある部分は、自分用に書き換えてください。

import openpyxl

target_excel_path = "sample.xlsx" # 書き込みたいExcelのPATH(適宜変更)
book = openpyxl.load_workbook(target_excel_path) # Excelを開く

book.remove(book['前版の内容']) # シートを削除
book.save(target_excel_path) # 上書き保存
book.close() # Excelを閉じる

print("PythonのOpenPyXLでExcelファイルのシートを削除しました。")



上記のプログラムを「openpyxl-delete-excel-sheet.py」というファイル名で保存しましょう。
 

保存後、以下のコマンドを実行し、openpyxl-delete-excel-sheet.pyを実行してください。

$ python openpyxl-delete-excel-sheet.py
PythonのOpenPyXLでExcelファイルのシートを削除しました。
$ 



コマンド実行後、「PythonのOpenPyXLでExcelファイルのシートを削除しました。」が表示された場合、「正常にシートを削除できた」と判断できます。
 

また、上書き保存されたExcelファイルを開き、シートが削除されていることを確認しましょう。(下図の赤枠)
 

Excelファイルでシートを削除



以上が、「PythonでExcelファイルにシートの追加/コピー/削除」となります。
 

Pythonで「セルの値」の書き込み/削除/更新

「Pythonで「セルの値」の書き込み/削除/更新」に関してご説明します。
 

PythonのOpenPyXLライブラリを利用することで、Excelファイルのセルに値の書き込み・削除・更新ができます。


 

セルへの書き込みと更新

PythonのOpenPyXLを用いて「セルへ書き込み/更新する」プログラムは、以下となります。
プログラム中の「適宜変更」と書いてある部分は、自分用に書き換えてください。

import openpyxl

excel_file = "excel-created-by-python-openpyxl.xlsx" # 編集するExcelファイルのPath(適宜変更)
sheet_name = "新規シート" # Excelシート名を指定(適宜変更)

book = openpyxl.load_workbook(excel_file) 
book[sheet_name].cell(row=4, column=2).value = "テスト" # セルに書き込み(適宜変更)
book[sheet_name]["A1"].value = "test" # セルに書き込み(適宜変更) 既にセルに値がある場合は、更新されます。
book.save(excel_file) # Excelファイルを上書き更新

print("PythonのOpenPyXLでExcelファイルのセルに値を書き込みました。")



上記のプログラムを「openpyxl-write-excel-column.py」というファイル名で保存しましょう。
 

書き込み先のセルに値が既に入っている場合、セルの値が更新されます。 



保存後、以下のコマンドを実行し、openpyxl-write-excel-column.pyを実行してください。

$ python openpyxl-write-excel-column.py 
PythonのOpenPyXLでExcelファイルのセルに値を書き込みました。



上記のように「PythonのOpenPyXLでExcelファイルのセルに値を書き込みました。」が表示された場合、「OpenPyXLでExcelファイルの指定したセルに書き込みできた」と判断できます。
 

また、書き込みされたExcelファイルを開き、指定したセルに値が書き込まれていることを確認しましょう。
 

OpenPyXLでExcelファイルの指定したセルに書き込み


 

セルの削除

PythonのOpenPyXLを用いて「セルを削除する」プログラムは、以下となります。
プログラム中の「適宜変更」と書いてある部分は、自分用に書き換えてください。

import openpyxl

target_excel_path = "sample.xlsx" # 書き込みたいExcelのPATH(適宜変更)
target_sheet_name = "次版の内容" # 操作したいシート名
book = openpyxl.load_workbook(target_excel_path) # Excelを開く

book[target_sheet_name]["C4"].value = None # セルの値を削除(クリア)
book.save(target_excel_path) # 上書き保存
book.close() # Excelを閉じる

print("PythonのOpenPyXLでExcelファイルの指定したセルを削除(クリア)しました。")



上記のプログラムを「openpyxl-delete-excel-column.py」というファイル名で保存しましょう。
 

保存後、以下のコマンドを実行し、openpyxl-delete-excel-column.pyを実行してください。

$ python openpyxl-delete-excel-column.py 
PythonのOpenPyXLでExcelファイルの指定したセルを削除(クリア)しました。



上記のように「PythonのOpenPyXLでExcelファイルの指定したセルを削除(クリア)しました。」が表示された場合、「OpenPyXLでExcelファイルの指定したセルを削除(クリア)できた」と判断できます。
 

また、上書き保存されたExcelファイルを開き、指定したセルの値が削除(クリア)されていることを確認しましょう。(下図の赤枠)
 

セルの削除


 

以上が、「Pythonで「セルの値」の書き込み/削除/更新」となります。
 

PythonでExcelファイルの指定したシートに「行」と「列」を挿入/削除

『PythonでExcelファイルの指定したシートに「行」と「列」を挿入/削除』に関してご説明します。
 

PythonのOpenPyXLライブラリを利用することで、Excelファイルの指定したシート内に行と列の挿入/削除ができます。


 

行と列を挿入

PythonのOpenPyXLを用いて「行と列を挿入する」プログラムは、以下となります。
プログラム中の「適宜変更」と書いてある部分は、自分用に書き換えてください。

import openpyxl

target_excel_path = "sample.xlsx" # 書き込みたいExcelのPATH(適宜変更)
target_sheet_name = "次版の内容" # 操作したいシート名
book = openpyxl.load_workbook(target_excel_path) # Excelを開く

book[target_sheet_name].insert_rows(4) # 行を挿入
book[target_sheet_name].insert_cols(3) # 列を挿入
book.save(target_excel_path) # 上書き保存
book.close() # Excelを閉じる

print("PythonのOpenPyXLでExcelファイルに行と列を挿入しました。")



上記のプログラムを「openpyxl-insert-excel-row-column.py」というファイル名で保存しましょう。
 

保存後、以下のコマンドを実行し、openpyxl-insert-excel-row-column.pyを実行してください。

$ python openpyxl-insert-excel-row-column.py
PythonのOpenPyXLでExcelファイルに行と列を挿入しました。



上記のように「PythonのOpenPyXLでExcelファイルに行と列を挿入しました。」が表示された場合、「OpenPyXLでExcelファイルに行と列を挿入できた」と判断できます。
 

また、上書き保存されたExcelファイルを開き、Excelファイルに行と列が挿入されていることを確認しましょう。(下図の赤枠と青枠)
 

行と列を挿入


 

行と列を削除

PythonのOpenPyXLを用いて「行と列を削除する」プログラムは、以下となります。
プログラム中の「適宜変更」と書いてある部分は、自分用に書き換えてください。

import openpyxl

target_excel_path = "sample.xlsx" # 書き込みたいExcelのPATH(適宜変更)
target_sheet_name = "次版の内容" # 操作したいシート名
book = openpyxl.load_workbook(target_excel_path) # Excelを開く

book[target_sheet_name].delete_rows(4) # 行を削除
book[target_sheet_name].delete_cols(3) # 列を削除
book.save(target_excel_path) # 上書き保存
book.close() # Excelを閉じる

print("PythonのOpenPyXLでExcelファイルの行と列を削除しました。")



上記のプログラムを「openpyxl-delete-excel-row-column.py」というファイル名で保存しましょう。
 

保存後、以下のコマンドを実行し、openpyxl-delete-excel-row-column.pyを実行してください。

$ python openpyxl-delete-excel-row-column.py
PythonのOpenPyXLでExcelファイルの行と列を削除しました。



上記のように「PythonのOpenPyXLでExcelファイルの行と列を削除しました。」が表示された場合、「OpenPyXLでExcelファイルに行と列を削除できた」と判断できます。
 

また、上書き保存されたExcelファイルを開き、Excelファイルの行と列が削除されていることを確認しましょう。(下図の赤枠と青枠)
 

行と列を削除



以上が、『PythonでExcelファイルの指定したシートに「行」と「列」を挿入/削除』となります。
 

Pythonのfor文(繰り返し処理)でExcelの最終行に繰り返し書き込み

「Pythonのfor文(繰り返し処理)でExcelの最終行に繰り返し書き込み」に関してご説明します。
 

Excelの最終行に、for文(繰り返し処理)でデータを書き込む方法を説明しますね。



PythonのOpenPyXLを用いて「Excelの最終行にfor文でデータ書き込みする」プログラムは、以下となります。
プログラム中の「適宜変更」と書いてある部分は、自分用に書き換えてください。

import openpyxl

target_excel_path = "sample.xlsx" # 書き込みたいExcelのPATH(適宜変更)
target_sheet_name = "次版の内容" # 操作したいシート名
book = openpyxl.load_workbook(target_excel_path) # Excelを開く

new_rows = [ ["pentom", "pen", "tom", 200], ["penhero", "pen", "hero", 2000] ] # 新規で書き込みたいデータ

max_row = book[target_sheet_name].max_row # シートの最終行を取得

# for文を使って、最終行からデータを繰り返し書き込み
now_row_num = 0
for row in new_rows:
  now_row_num += 1
  now_col_num = 1
  for column_value in row:
    book[target_sheet_name].cell(row=max_row+now_row_num, column=now_col_num).value = column_value # セルに書き込み
    now_col_num += 1

book.save(target_excel_path) # 上書き保存
book.close() # Excelを閉じる

print("PythonのOpenPyXLでExcelファイルの最終行にデータを書き込みました。")



上記のプログラムを「openpyxl-write-excel-last-row.py」というファイル名で保存しましょう。
 

保存後、以下のコマンドを実行し、openpyxl-write-excel-last-row.pyを実行してください。

$ python openpyxl-write-excel-last-row.py
PythonのOpenPyXLでExcelファイルの最終行にデータを書き込みました。



上記のように「PythonのOpenPyXLでExcelファイルの最終行にデータを書き込みました。」が表示された場合、「OpenPyXLでExcelの最終行にfor文でデータ書き込みできた」と判断できます。
 

また、上書き保存されたExcelファイルを開き、Excelファイルの最終行からデータが書き込まれたことを確認しましょう。(下図の赤枠)
 

Pythonのfor文(繰り返し処理)でExcelの最終行に繰り返し書き込み



以上が、「Pythonのfor文(繰り返し処理)でExcelの最終行に繰り返し書き込み」となります。
 

羅線/フォント設定/文字寄せ設定などの便利な書き込み方法

「羅線/フォント設定/文字寄せ設定などの便利な書き込み方法」に関して説明します。
 

PythonのOpenPyXLを使うと、羅線やフォントなどの設定もできます。



PythonのOpenPyXLを用いて「羅線・フォント・列幅・塗りつぶし・文字寄せを設定する」プログラムは、以下となります。
プログラム中の「適宜変更」と書いてある部分は、自分用に書き換えてください。

import openpyxl
from openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Font

target_excel_path = "sample.xlsx" # 書き込みたいExcelのPATH(適宜変更)
target_sheet_name = "前版の内容" # 操作したいシート名
book = openpyxl.load_workbook(target_excel_path) # Excelを開く

book[target_sheet_name].column_dimensions["A"].width = 100 # セルの列幅を設定


font_data = openpyxl.styles.Font()
font_data.bold = True
font_data.color = "FF0000"
font_data.name = 'Arial'
book[target_sheet_name]["A4"].font = font_data # セルのフォント設定


border_data = Border()
border_data.left = Side(style="mediumDashed")
border_data.right = Side(style="mediumDashed")
border_data.top = Side(style="thin")
border_data.bottom = Side(style="thin")
book[target_sheet_name]["A5"].border = border_data # セルのボーダー(羅線)設定


fill_data = PatternFill()
fill_data.patternType = "solid"
fill_data.fgColor = "d3d3d3"
book[target_sheet_name]["B3"].fill = fill_data # セルの塗りつぶしを設定


align_data = Alignment()
align_data.horizontal = 'right'
align_data.vertical = 'center'
book[target_sheet_name]['B4'].alignment = align_data # セルの文字寄せを設定

book.save(target_excel_path) # 上書き保存
book.close() # Excelを閉じる

print("PythonのOpenPyXLでExcelファイルの列幅・フォント・ボーダ・塗りつぶし・文字寄せの設定をしました。")



上記のプログラムを「openpyxl-setting.py」というファイル名で保存しましょう。
 

保存後、以下のコマンドを実行し、openpyxl-setting.pyを実行してください。

$ python openpyxl-setting.py
PythonのOpenPyXLでExcelファイルの列幅・フォント・ボーダ・塗りつぶし・文字寄せの設定をしました。



上記のように「PythonのOpenPyXLでExcelファイルの列幅・フォント・ボーダ・塗りつぶし・文字寄せの設定をしました。」が表示された場合、「OpenPyXLでExcelの列幅・フォント・ボーダ(羅線)・塗りつぶし・文字寄せの設定ができた」と判断できます。
 

また、上書き保存されたExcelファイルを開き、Excelファイルで列幅・フォント・ボーダ(羅線)・塗りつぶし・文字寄せの設定がされたことを確認しましょう。
 

羅線/フォント設定/文字寄せ設定などの便利な書き込み方法



以上が、「羅線/フォント設定/文字寄せ設定などの便利な書き込み方法」となります。
 

PythonのOpenPyXLを用いることで、上記のようなExcel書き込みを簡単に実現できました。


 

ちなみに、「PythonのOpenPyXLを使って仕事を楽にできないかな?」と言った具体的な使い道を知りたい方には、以下の参考書がお勧めです。
 



動画で学びたい方には、以下がお勧めです。
 

動画でOpenPyXLを学ぶ@Udemy


 

【まとめ】Excel書き込みを自動化!Python(OpenPyXL)の書き込み方法まとめ

【まとめ】Excel書き込みを自動化!Python(OpenPyXL)の書き込み方法まとめ


いかがでしたでしょうか?
「OpenPyXLとは何か?」「OpenPyXLのインストール方法」「PythonのOpenPyXLで様々なExcel書き込み方法」を解説し、以下の悩みを解決しました。 
 

★悩み★
・PythonでExcelファイルの指定したセルに「データ書き込み」ってできる?
・PythonのOpenPyXLライブラリを用いてExcelへ書き込む方法を知りたい。
・そもそもOpenPyXLって何?インストールとか必要なの?



ぜひあなたも本記事を参考に「PythonのOpenPyXLを使って、Excelへの書き込み」をしてみてください。

コメント

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