diff --git a/Examples/ExcelDataValidation/MutipleValidations.ps1 b/Examples/ExcelDataValidation/MutipleValidations.ps1 new file mode 100644 index 0000000..99e9abb --- /dev/null +++ b/Examples/ExcelDataValidation/MutipleValidations.ps1 @@ -0,0 +1,71 @@ +<# + This examples demos three types of validation: + * Creating a list using a PowerShell array + * Creating a list data from another Excel Worksheet + * Creating a rule for numbers to be between 0 an 10000 + + Run the script then try" + * Add random data in Column B + * Then choose from the drop down list + * Add random data in Column C + * Then choose from the drop down list + * Add .01 in column F +#> + +try {. $PSScriptRoot\..\..\LoadPSD1.ps1} catch {} + +$path = "$Env:TEMP\DataValidation.xlsx" +Remove-Item $path -ErrorAction SilentlyContinue + +$data = ConvertFrom-Csv -InputObject @" +ID,Region,Product,Quantity,Price +12001,North,Nails,37,3.99 +12002,South,Hammer,5,12.10 +12003,East,Saw,12,15.37 +12010,West,Drill,20,8 +12011,North,Crowbar,7,23.48 +"@ + +# Export the raw data +$excelPackage = $Data | + Export-Excel -WorksheetName "Sales" -Path $path -PassThru + +# Creates a sheet with data that will be used in a validation rule +$excelPackage = @('Chisel', 'Crowbar', 'Drill', 'Hammer', 'Nails', 'Saw', 'Screwdriver', 'Wrench') | + Export-excel -ExcelPackage $excelPackage -WorksheetName Values -PassThru + +$ValidationParams = @{WorkSheet = $excelPackage.sales; ShowErrorMessage = $true; ErrorStyle = 'stop'; ErrorTitle = 'Invalid Data' } + +# Creating a list using a PowerShell array +$MoreValidationParams = @{ + Range = 'B2:B1001' + ValidationType = 'List' + ValueSet = @('North', 'South', 'East', 'West') + ErrorBody = "You must select an item from the list." +} + +Add-ExcelDataValidationRule @ValidationParams @MoreValidationParams + +# Creating a list data from another Excel Worksheet +$MoreValidationParams = @{ + Range = 'C2:C1001' + ValidationType = 'List' + Formula = 'values!$a$1:$a$10' + ErrorBody = "You must select an item from the list.`r`nYou can add to the list on the values page" #Bucket +} + +Add-ExcelDataValidationRule @ValidationParams @MoreValidationParams + +# Creating a rule for numbers to be between 0 an 10000 +$MoreValidationParams = @{ + Range = 'F2:F1001' + ValidationType = 'Integer' + Operator = 'between' + Value = 0 + Value2 = 10000 + ErrorBody = 'Quantity must be a whole number between 0 and 10000' +} + +Add-ExcelDataValidationRule @ValidationParams @MoreValidationParams + +Close-ExcelPackage -ExcelPackage $excelPackage -Show \ No newline at end of file