ワークシートを開くことができますが、フィルターをオンにせずにすべての列に小さなフィルターメニューを追加するにはどうすればよいですか?
私はxlsxwriterでそれを行うことができます
worksheet.autofilter(0, 0, 0, num_of_col)
Openpyxlでそれを行うにはどうすればよいですか?
この投稿は私の質問への回答に役立ちましたが、「FullRange」の変数を作成する代わりに、ws.dimensionsを呼び出すだけで、「A1:XX」の範囲の文字列値を返すことができます。これを使用して、Excelスプレッドシート全体にフィルターを適用しました。
import openpyxl as px
wb= px.load_workbook('Data/Test01.xlsx')
ws = wb.active
ws.auto_filter.ref = ws.dimensions
wb.save('Data/Test03.xlsx')
worksheet.auto_filter.ref
をワークシートのセルの全範囲に設定するだけです。
import openpyxl
from openpyxl.utils import get_column_letter
workbook = openpyxl.load_workbook('Data/Test01.xlsx')
worksheet = workbook['Sheet1']
FullRange = "A1:" + get_column_letter(worksheet.max_column) \
+ str(worksheet.max_row)
worksheet.auto_filter.ref = FullRange
workbook.save('Data/Test03.xlsx')
#G5Wによる回答に追加するには、代わりに次を実行できます: '' 'worksheet.auto_filter.ref = "C1:D10000"#CおよびDフィルターのexaple列の場合は' ''