mirror of
https://github.com/dfinke/ImportExcel.git
synced 2025-12-06 00:23:20 +00:00
85 lines
2.5 KiB
PowerShell
85 lines
2.5 KiB
PowerShell
#region Setup
|
|
<#
|
|
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 {Import-Module $PSScriptRoot\..\..\ImportExcel.psd1} catch {throw ; return}
|
|
|
|
$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
|
|
|
|
#endregion
|
|
|
|
#region Creating a list using a PowerShell array
|
|
$ValidationParams = @{
|
|
WorkSheet = $excelPackage.sales
|
|
ShowErrorMessage = $true
|
|
ErrorStyle = 'stop'
|
|
ErrorTitle = 'Invalid Data'
|
|
}
|
|
|
|
|
|
$MoreValidationParams = @{
|
|
Range = 'B2:B1001'
|
|
ValidationType = 'List'
|
|
ValueSet = @('North', 'South', 'East', 'West')
|
|
ErrorBody = "You must select an item from the list."
|
|
}
|
|
|
|
Add-ExcelDataValidationRule @ValidationParams @MoreValidationParams
|
|
#endregion
|
|
|
|
#region 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
|
|
#endregion
|
|
|
|
#region 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
|
|
#endregion
|
|
|
|
#region Close Package
|
|
Close-ExcelPackage -ExcelPackage $excelPackage -Show
|
|
#endregion |