Python XlsxWriter - 資料驗證



Excel 中的資料驗證功能允許您控制使用者可以在單元格中輸入的內容。您可以使用它來確保單元格中的值是指定範圍內的數字/日期、具有所需長度的文字,或提供一個下拉選單以從中選擇值。

資料驗證工具位於“資料”選單中。第一個選項卡允許您設定驗證條件。下圖顯示該條件要求單元格應包含 1 到 25 之間的整數 -

Data Validation

在第二個選項卡中,設定當用戶游標位於所需單元格(在本例中為“輸入 1 到 25 之間的任何整數”)時要顯示的訊息。您還可以設定訊息標題;在本例中為“年齡”。

Data Validation1

第三個選項卡允許您定義任何錯誤訊息,如果您希望在驗證條件失敗時顯示。

Data Validation2

當用戶將游標放在 I10(已設定驗證)中時,您可以看到輸入訊息。

Age1

當輸入的數字不在範圍內時,將顯示錯誤訊息。

Age2

使用 XlsxWriter 資料驗證

您可以使用data_validation()方法以程式設計方式設定驗證條件、輸入和錯誤訊息。

worksheet.data_validation(
   'I10',
   {
      'validate': 'integer','criteria': 'between',
      'minimum': 1,'maximum': 25,
      'input_title': 'Enter an integer:',
      'input_message': 'between 1 and 25',
      'error_title': 'Input value is not valid!',
      'error_message': 'It  should be an integer between 1 and 25'
   }
)

data_validation()方法接受選項引數作為字典,其中包含以下引數 -

  • validate - 用於設定您希望驗證的資料型別。允許的值包括整數、小數、列表、日期、時間、長度等。

  • criteria - 用於設定驗證條件。可以設定為任何邏輯運算子,包括between/not between==!=<><=>=等。

  • value - 設定應用條件的限制值。始終需要。使用列表驗證時,它以逗號分隔變數字串的形式給出。

  • input_title - 用於設定將游標置於目標單元格時輸入訊息的標題。

  • input_message - 輸入單元格時要顯示的訊息。

  • error_title - 未滿足驗證條件時要顯示的錯誤訊息的標題。

  • error_message - 設定錯誤訊息。預設錯誤訊息為“您輸入的值無效。使用者已限制可以輸入單元格的值”。

示例

以下data_validation()方法的使用會導致資料驗證功能的行為如上圖所示。

import xlsxwriter

wb = xlsxwriter.Workbook('hello.xlsx')
worksheet = wb.add_worksheet()

worksheet.data_validation(
   'I10',
   {
      'validate': 'integer','criteria': 'between',
      'minimum': 1,'maximum': 25,
      'input_title': 'Enter an integer:',
      'input_message': 'between 1 and 25',
      'error_title': 'Input value is not valid!',
      'error_message':'It should be an integer between 1 and 25'
   }
)
wb.close()

作為另一個示例,單元格 I10 設定了一個驗證條件,以強制使用者從下拉列表中的字串列表中選擇其值。

worksheet.data_validation(
   'I10',
   {
      'validate': 'list',
      'source': ['Mumbai', 'Delhi', 'Chennai', 'Kolkata'],
      'input_title': 'Choose one:',
      'input_message': 'Select a value from th list',
   }
)

示例

使用下拉列表進行驗證的修改後的程式如下所示 -

import xlsxwriter

wb = xlsxwriter.Workbook('hello.xlsx')
worksheet = wb.add_worksheet()

worksheet.data_validation(
   'I10',
   {
      'validate': 'list',
      'source': ['Mumbai', 'Delhi', 'Chennai', 'Kolkata'],
      'input_title': 'Choose one:',
      'input_message': 'Select a value from the list',
   }
)
wb.close()

輸出

將游標置於 I10 單元格時,將出現下拉列表 -

Dropdown List

示例

如果要讓使用者輸入長度大於 5 的字串,請使用>=作為條件並將值設定為 5。

import xlsxwriter

wb = xlsxwriter.Workbook('hello.xlsx')
worksheet = wb.add_worksheet()

worksheet.data_validation(
   'I10',{
      'validate': 'length',
      'criteria': '>=','value': 5,'input_title': 'Enter name:',
      'input_message': 'Minimum length 5 character',
      'error_message':'Name should have at least 5 characters'
   }
)

wb.close()

輸出

如果字串的字元數少於 5 個,則會彈出錯誤訊息,如下所示 -

String
廣告

© . All rights reserved.