0
0

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 1 year has passed since last update.

pythonでExcelのデータの入力規則を設定する関数

Last updated at Posted at 2023-11-20

この記事で分かること

pythonのライブラリopenpyxlを使用して、エクセルの任意のセルにデータの入力規則を設定する方法を、備忘録がてらご紹介します。

結論

具体的な関数は以下です。
サンプルはリスト型の入力規則を設定する方法です。

import openpyxl as xl
from openpyxl.worksheet.datavalidation import DataValidation

def create_data_validation_list(
    wb: xl.Workbook,    # 編集対象のブック
    ws_name: str,       # シート名
    choices: list,      # 選択肢のリスト
    add_range: str      # 単一セル
) -> None:
    ws = wb[ws_name]
    dv = DataValidation(
        type="list",
        formula1='"{}"'.format(','.join(choices)),
        allow_blank=True,
        showErrorMessage=True,
        errorStyle="warning",
    )
    dv.add(ws["{}".format(add_range)])
    ws.add_data_validation(dv)

上記の関数はこんな感じで使用します。

# 編集対象ブック開く
filepath = 'test.xlsx'
wb = xl.load_workbook(filepath)

# ブックの最初のシート名を取得
ws_name = wb.sheetnames[0]

# 入力規則の選択肢
choices = ['', '×', '']

# "A1"セルに入力規則を適用
create_data_validation_list(wb, ws_name, choices, "A1")

# 保存
wb.save('output.xlsx')

上記のコードを実行すると、このように "A1" セルにデータの入力規則が設定されます。

dv_sample.png

ほんのり解説

openpyxl.worksheet.datavalidation.DataValidationクラスをインスタンス化し、任意のセルに適用(add)することで、データの入力規則を設定することができます。

今回はリスト型の入力規則を設定しましたが、エクセルには様々な種類の入力規則があります。

データの入力規則.png

この種類は、DataValidationクラスのtypeプロパティで選択することができます。
各種類の設定方法は公式ドキュメントを参照してください。

その他のプロパティに関しても記載されておりますので、軽く目を通すことをお勧めします。

さいごに

株式会社ジールでは、「ITリテラシーがない」「初期費用がかけられない」「親切・丁寧な支援がほしい」「ノーコード・ローコードがよい」「運用・保守の手間をかけられない」などのお客様の声を受けて、オールインワン型データ活用プラットフォーム「ZEUSCloud」を月額利用料にてご提供しております。
ご興味がある方は是非下記のリンクをご覧ください:
https://www.zdh.co.jp/products-services/cloud-data/zeuscloud/?utm_source=qiita&utm_medium=referral&utm_campaign=qiita_zeuscloud_content-area

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?