SharePoint Online: Create Multiple Lists from a CSV File using PowerShell
How to Create Multiple lists from CSV File?
We can use the combination of CSV and PowerShell to create multiple lists in bulk in SharePoint Online. Here is my CSV File:
You can download this CSV here: SharePoint Online CSV Template to Create Multiple Lists
PowerShell to Create Multiple lists from CSV File
Use this PnP PowerShell to create SharePoint lists from csv.
#Set Parameters $SiteURL = "https://crescent.sharepoint.com/sites/Marketing" $CSVFilePath = "C:\Documents\ListCreationTemplate.csv" #Connect to the site Connect-PnPOnline -Url $SiteURL -UseWebLogin #Get the data from CSV file $CSVFile = Import-CSV $CSVFilePath #Read CSV file and create List ForEach($Row in $CSVFile) { Try { #Create List Write-host -f Yellow "Creating List:"$Row.ListName If($Row.OnQuickLaunch -eq "True") { New-PnPList -Title $Row.ListName -Template $Row.Template -OnQuickLaunch -ErrorAction Stop | Out-Null } else { New-PnPList -Title $Row.ListName -Template $Row.Template -ErrorAction Stop | Out-Null } Write-host -f Green "`tCreated List '$($Row.ListName)'" } Catch { write-host -f Red "`tError:" $_.Exception.Message } }
This CSV file has ListName, Description, Template, OnQuickLaunch columns. You can add any necessary columns as the parameter for creating list.
Tail: How to Get All Values from an Enumerator?
If you want get all values from an enum, use the below PowerShell script. In my case, I had to retrieve all list template types.
#Get All Values from the Enum Function Get-EnumValues([string]$Enumerator) { $EnumValues = @{} [Enum]::GetValues([Type]$Enumerator) | ForEach-Object { $EnumValues.add($_, $_.value__) } $EnumValues } Get-EnumValues -Enumerator "Microsoft.SharePoint.Client.ListTemplateType"
Thanks & Best Regards!
Javi Zhu 朱佳辉
Mobile: 15900467108
Email: Javi.zhu@outlook.com