プログラミング 自動化

Pandasとopenpyxlで既存のエクセルファイルにシートを追加する

この記事は約2分で読めます。

 

MENTAで「Pandasとopenpyxlで既存のエクセルファイルにシートを追加する」という処理を実装サポートさせていただいたのですが少しはまったのでサンプルをメモしておきます

 

前準備

 

pandasの内部でopenpyxlを使用しているのでopenpyxlもインストールしておく必要があります

 

$ pip install openpyxl

 

Pandasとopenpyxlで既存のエクセルファイルにシートを追加するサンプルプログラム

 

デフォルトでは、エクセル操作ライブラリに xlsxwriter が選択されてしまい、追記モードでは Append mode is not supported with xlsxwriter! というエラーが発生してしまいます。これを回避するために engine=’openpyxl’ を指定する必要があります。

 

import pandas as pd
import openpyxl

excel_path = '/content/sya2_pallet_webhook.xlsx'

df = pd.DataFrame([[1],[1],[1]],columns=['col_name1'])
with pd.ExcelWriter(excel_path, engine='openpyxl', mode='a') as writer:
  df.to_excel(writer, sheet_name='add_sheet')


wb = openpyxl.load_workbook(excel_path)
print(wb.get_sheet_names()) #シートが追加されたか確認

 

上記コードを実行すると既存のシートの後ろに「add_sheet」というシートが新しく作成されていることが確認できます。追加したシートの中身は以下のコードで確認できます

 

df_sheet_index = pd.read_excel(excel_path, sheet_name='add_sheet', index_col=0)
print(df_sheet_index.head())

 

 

関連記事:【Python】pd.read_excel()でxlsx読み込みの際にXLRDErrorが起きた件

関連記事:【Python】openpyxlで「Excelの数式」の読み込み・書き込み

関連記事:エクセルの複数シートにデータフレームを出力・追記する

 


プログラミング・スクレイピングツール作成の相談を受け付けています!

クラウドワークス・ココナラ・MENTAなどでPython・SQL・GASなどのプログラミングに関する相談やツール作成などを承っております!

過去の案件事例:

  • Twitter・インスタグラムの自動化ツール作成
  • ウェブサイトのスクレイピングサポート
  • ダッシュボード・サイト作成
  • データエンジニア転職相談

これまでの案件例を見る

キャリア相談もお気軽に!文系学部卒からエンジニア・データサイエンティストへの転職経験をもとに、未経験者がどう進むべきかのアドバイスを提供します。


スポンサーリンク
/* プログラミング速報関連記事一覧表示 */
ミナピピンの研究室

コメント

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