PythonとOpenpyxlを使用してExcelのデータをソートする方法について説明します。Excel内のデータが多くなるとソートに時間がかかったりします。また、複数のExcelファイルをソートするとなるとさらに時間がかかるため、Pythonで自動化してしまえば、その時間は優雅にティータイムにでもあてておきたいです。
PythonでExcelのデータを昇順・降順
Pythonを使用してExcelのデータの昇順・降順を行う方法について紹介します。今回は2つの方法で紹介しようと思います。
- win32comを使用した昇順・降順
- openpyxl & pandasを使用した昇順・降順
どちらの方法でも同じような結果を出すことが出来ます。個人的な使い分けとしては、Excelファイルのみで完結するのか?どうかで使い分けをしています。
win32comを使用したExcelの昇順・降順
最初はwin32comというライブラリを使用した場合の昇順・降順を紹介していきます。
import win32com.client
file_path = r"C:\\Users\\user\\Desktop\\syukujitsu.xlsx"
#Excelファイル操作のための準備
excel = win32com.client.Dispatch("Excel.Application")
wb = excel.Workbooks.Open(Filename=file_path)
#Sort 数値の割り振り
xlAscending = 1
xlDescendig = 2
xlYes = 1
#B列で昇順
wb.Sheets(1).Columns("A:B").Sort(Key1=wb.Sheets(1).Range('B2'), Order1=xlAscending, Header=xlYes)
#A列で降順
wb.Sheets(1).Columns("A:B").Sort(Key1=wb.Sheets(1).Range('A2'), Order1=xlDescendig, Header=xlYes)
#Excelファイルを保存
wb.Save()
#Excelを閉じる
excel.Quit()
openpyxl & pandasを使用したExcelの昇順・降順
次に、openpyxlとpandasを使用した場合の昇順・降順を紹介します。
from openpyxl import load_workbook
wb=load_workbook('NotSorted.xlsx')
ws1=wb.get_sheet_by_name('Mean')
ws1.auto_filter.add_sort_condition('J2:J21')
wb.save('Sorted.xlsx')
以上がPythonとOpenpyxlを使用してExcelのデータをソートする方法になります。これらの方法を活用すれば、Excelのデータを効率的にソートすることが可能になります。