0
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Python】DataValidationメソッドを使用して、データの入力規則を設定する

Posted at

pythonを使用してExcelファイルの操作を勉強しています。
本日の気づき(復習)は、条件付き書式に関してです。
pythonでExcelを操作するため、openpyxlというパッケージを使用しています。

image.png

上記のようなブック「商品リストを」

image.png

この様なリスト入力だ出来る表に変更したいです。

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')

個人的に、今までリストは

他のシートのセルにリスト内容を入力しておくもの
(リスト内容のセルは非表示で隠しておくもの)

と、思っていたので
そんなことしなくてもリストを作れるというのが衝撃的でした。

0
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?