openpyxlでエクセルファイルを編集しているんだけど、
「Sheet2」を先頭に持ってきたい…。
なるほど…。
シートの並び替えをしたいということですね?
では今回は、「openpyxlでシートの並び替えをする方法」を
できるだけわかりやすく解説いたします。
openpyxlでシートの並び替えをする方法
「move_sheet」を使います。まずは全コードと実行結果をお見せします。
解説は後ほど行います。
全コード
import openpyxl
wb = openpyxl.load_workbook('C://Utatane/input.xlsx')
ws1 = wb['Sheet1']
ws2 = wb['Sheet2']
ws3 = wb['Sheet3']
wb.move_sheet('Sheet2', offset=-1)
ws1.sheet_view.tabSelected = False
wb.save('C://Utatane/output.xlsx')
wb.move_sheet('Sheet2', offset=-1)
ws1.sheet_view.tabSelected = False
実行結果
事前準備
- openpyxlのインストール
既存のエクセルファイルを編集するには「openpyxl」のインストールが必要です。
openpyxlのインストール方法
openpyxlを初めて使用する場合は、下記コードを入力・実行して、インストールしてください。
pip install openpyxl
※openpyxlを使用したことがある場合は、このインストール作業は不要です。
インストールに関する詳細や、インストールができなかった場合の対処法は下記記事で解説しております。
また、既存ファイルを開いて保存する方法など、基本解説も行っておりますのでご参考ください。
解説
※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。
インポート~ブック・シートの取得
import openpyxl
wb = openpyxl.load_workbook('C:/Utatane/input.xlsx')
ws1 = wb['Sheet1']
ws2 = wb['Sheet2']
ws3 = wb['Sheet3']
上記コードにて、エクセル操作に必要な「openpyxl」のインポートと、エクセルブック・シートを取得しています。
詳細は、「インストール方法」の記事をご参考ください。
シートの並び替え
wb.move_sheet('Sheet2', offset=-1)
ws1.sheet_view.tabSelected = False
コードの8行目で、シートの並び替えを行っています。
今回の場合は、「Sheet2」を1つ左に移動させる処理です。
【コードの解説】
ワークブックを取得した変数(今回はwb)に続けて、「.move_sheet()」を書きます。
()内には、「並び替えしたいシートの名前」と「移動させる数」を指定します。
「移動させる数」ですが、「1」なら「右へ1つ」、「-1」なら「左へ1つ」移動します。
先頭に置きたい場合、「-9999」とするのが手っ取り早いです。エラーは特に出ません。
<シートの並び替え方法のテンプレ>
【 ワークブック変数.move_sheet(‘シート名‘, offset=移動させる数) 】
コードの9行目で「シートのグループ化」を解除しています。
8行目だけでは、下図のとおり「シートがグループ化された状態」になることがあります。
そこで9行目を記述して、「Sheet1」の選択を解除しています。
これでグループ化を解除することができます。
<シート選択解除(グループ化解除)のテンプレ>
【 選択を解除したいワークシート変数.sheet_view.tabSelected = False 】
うまく動作しない場合の対処法
エラーが出る
No such file or directory: ○○
これは、読み込むファイルやフォルダが見つからないというエラーです。
読み込むファイルのファイル名と構文のファイル名が一致しているか確認しましょう。
詳しい解説は、下記記事をご参考ください。
Permission denied: ○○
操作しようとしているファイルにアクセスできないというエラーです。
「ファイルを開いている状態なので編集できない」と言っていることが多いので、開いていれば閉じて再度トライしましょう。
詳しい解説は、下記記事をご参考ください。
Worksheet ○○ does not exist
「指定したシートがありません」というエラーです。
指定のシート名が間違っていないか、「sheet1」など先頭が小文字になっていないか確認しましょう。
詳しい解説は、下記記事をご参考ください。
○○ is not defined
今まで出てきていない変数などを処理しようとした時に出るエラーです。
変数名などが間違っていないかチェックしましょう。
詳しい解説は、下記記事をご参考ください。
その他のエラー
その他のエラーが出た場合は、エラー文をコピーしてNETで検索してみましょう。
最後に
openpyxlでシートの並び替えをする方法を解説いたしました。
当ブログでは、Pythonに関する情報を配信しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
挫折せずにPythonを独学で学習する方法は特におすすめです。
最後までお読みいただき、ありがとうございました。がんばってください!