// SPDX-License-Identifier: MIT OR Apache-2.0
//
// Copyright 2022-2026, John McNamara, jmcnamara@cpan.org
//! Example of adding a data validation to a worksheet cell. This validation
//! restricts input to text/strings that are uppercase.
use rust_xlsxwriter::{DataValidation, Workbook, XlsxError};
fn main() -> Result<(), XlsxError> {
// Create a new Excel file object.
let mut workbook = Workbook::new();
let worksheet = workbook.add_worksheet();
worksheet.write(1, 0, "Enter uppercase string in D2:")?;
let data_validation =
DataValidation::new().allow_custom("=AND(ISTEXT(D2), EXACT(D2, UPPER(D2)))".into());
worksheet.add_data_validation(1, 3, 1, 3, &data_validation)?;
// Save the file.
workbook.save("data_validation.xlsx")?;
Ok(())
}