ちょっと調べてみましたがopenpyxlにはセルや行を挿入するメソッドはないようです。
自力でループを回して頑張ってセル値を下にずらせばできそうですが面倒です。
ということでpywin32を紹介しておきます。
COM経由でExcelを操作する手法なので、Excelマクロと同じ感覚で利用できます。
当然ですが、Excelがインストールされている必要があります。
参考:pywin32からCOMを使ってExcelを操作する方法
Python
1import win32com.client
2app = win32com.client.Dispatch("Excel.Application")
3wb = app.Workbooks.Open('test.xlsx')
4sheet = wb.Worksheets('Sheet1')
5sheet.Range('2:2').Insert() # 2行目に行を挿入
6wb.Save()
7wb.Close()
8app.Quit()
ただPythonでExcel作業を自動化: Excelファイルのクローズ問題に紹介されているとおり、エラー発生時にEXCEL.EXE
プロセスが残りがちなのが気になるところです。
目的次第ですが、個人的には、新たに処理日時+連番 列を用意しopenpyxlで末尾に追加。
必要な時だけExcel上の手作業([データ]→[並び替え])で並び替えする手段で我慢しときます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/23 13:06