pythonを使用してExcelファイルの操作を勉強しています。
本日の気づき(復習)は、条件付き書式に関してです。
pythonでExcelを操作するため、openpyxlというパッケージを使用しています。
上記のようなブック「商品リストを」
この様なリスト入力だ出来る表に変更したいです。
DataValidationメソッド
validation = DataValidation(type='入力値の種類',
formula1='入力可能にする値',
allow_blank=空白を無視する場合はTure)
データの入力規則を設定するには上記のような
DataValidationを先ず作ります。
type引数には、「日付」「リスト」などの入力値の種類を記述します。
- whole:整数
- time:時刻
- date:日付
- textLength:文字列(長さを指定する)
- list:リスト
- custom:ユーザー設定
- decimal:小数点
DataValidation.addメソッド
DataValidation.add(セルの範囲)
データの入力規則を決めたら、お次は設定するセルの範囲を
DataValidation.addメソッドで記述します。
最後にWorksheetのadd_data_validationメソッドに
最初に作ったDataValidationオブジェクトを設定することで
シートにデータ入力規則が設定できます。
最終的なコード
from openpyxl import load_workbook
from openpyxl.worksheet.datavalidation import DataValidation
wb = load_workbook('商品リスト.xlsx')
ws = wb.active
validation = DataValidation(type='list',
formula1='"レジ1,レジ2,レジ3"',
allow_blank=False)
validation.add('I3:I24')
ws.add_data_validation(validation)
wb.save('商品リスト_リスト追加.xlsx')
個人的に、今までリストは
他のシートのセルにリスト内容を入力しておくもの
(リスト内容のセルは非表示で隠しておくもの)
と、思っていたので
そんなことしなくてもリストを作れるというのが衝撃的でした。