Wednesday, November 16, 2016

SharePoint Online: Import Terms to Term Set from CSV using PowerShell

Requirement: Import terms to term set in SharePoint Online from a CSV file using PowerShell.
Here is my CSV file with list of Terms for a Term set called "Job Title"

sharepoint online import term set

SharePoint Online Import Terms to Term Set using PowerShell: 
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Taxonomy.dll"
#Variables for Processing
$AdminURL = ""
$TermGroupName= "People"
$TermSetName="Job Title"
$CSVFile ="C:\Temp\ImportTerms.csv" 
$TermHeaderInCSV ="JobTitle"

Try {
    #Get Credentials to connect
    $Cred = Get-Credential
    $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)

    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($AdminURL)
    $Ctx.Credentials = $Credentials

    #Get the term store
    $TermStore =$TaxonomySession.GetDefaultSiteCollectionTermStore()

    #Get Termstore data from CSV and iterate through each row
    Import-Csv $CSVFile | ForEach-Object {
        #Get the Term Group

        #Get the term set
        $TermSet = $TermGroup.TermSets.GetByName($TermSetName)

        #CSV File Header Row in Term to Add
        $TermName = $_.$($TermHeaderInCSV)
        #Check if the given term exists already
        $Terms = $TermSet.Terms
        $Term = $Terms | Where-Object {$_.Name -eq $TermName}
        If(-not $Term)
            #Create Term Set
            Write-host "Creating Term '$TermName'" -ForegroundColor Cyan
            $Term = $TermSet.CreateTerm($TermName,1033,[System.Guid]::NewGuid().toString())
            Write-host "New Term '$TermName' Added Successfully!" -ForegroundColor Green
            Write-host "Term '$TermName' Exists Already!" -ForegroundColor Yellow
Catch {
    write-host -f Red "Error Importing Term store Data!" $_.Exception.Message
and the result:
sharepoint online import terms

You might also like:
SharePoint Usage Reports
Usage reports, collaboration and audit for SharePoint.
Document SharePoint Farm
Automatically generate SharePoint documentation.

Check out these SharePoint products:

No comments :

Post a Comment

Please Login and comment to get your questions answered!

You might also like:

Related Posts Plugin for WordPress, Blogger...