Data

Export SharePoint Term Store terms to CSV

Export SharePoint Term Store terms to CSV

Summary

Script will export all or selected term groups' terms to CSV file.

Implementation

  • Open Windows PowerShell ISE
  • Edit Script and add details like SharePoint tenant URL, Term groups, and the output directory
  • Press run
powershell
###### Declare and Initialize Variables ######  

#term store variables
$groups = @("Group 1","Group 2") # leave empty for exporting all groups

# data will be saved in same directory script was started from
$saveDir = (Resolve-path ".\")  
$currentTime= $(get-date).ToString("yyyyMMddHHmmss")  
$FilePath=".\TermStoreReport-"+$currentTime+".csv"  
Add-Content $FilePath "Term group name, Term group ID, Term set name, Term set ID, Term name, Term ID"

## Export List to CSV ##  
function ExportTerms
{  
    try  
    {  
        if($groups.Length -eq 0){ 
            $groups = @(m365 spo term group list | ConvertFrom-Json | ForEach-Object{ $_.Name })
        }
        # Loop through the term groups
        foreach ($termGroup in $groups) {
            try {
                $termGroupName = $termGroup
                Write-Host "Exporting terms from $termGroup"
                $query = "[?Name == '"+$termGroupName+"']"
                $termGroupObj = m365 spo term group list --query $query | ConvertFrom-Json 
                if($termGroupObj)
                {
                 $termSets = m365 spo term set list --termGroupName $termGroupName | ConvertFrom-Json 
                 foreach ($termSetObj in $termSets) {
                    $terms = m365 spo term list --termGroupName $termGroupName --termSetName $termSetObj.Name | ConvertFrom-Json 
                    foreach ($term in $terms) {
                        Add-Content $FilePath "$($termGroupObj.Name),$($termGroupObj.Id),$($termSetObj.Name),$($termSetObj.Id),$($term.Name),$($term.Id)"
                    }
                 }
               }
            }
            catch {
                Write-Host "Error: $($_.Exception.Message)" -ForegroundColor Red
            }            
        }
     }  
     catch [Exception]  
     {  
        $ErrorMessage = $_.Exception.Message         
        Write-Host "Error: $ErrorMessage" -ForegroundColor Red          
     }  
}  
 
## Connect to SharePoint Online site  

$m365Status = m365 status
if ($m365Status -match "Logged Out") {
  Write-Host "Logging in the User!"
  m365 login --authType browser
}
 
## Call the Function  
ExportTerms
 
## Disconnect the context  
m365 logout  

Contributors

Disclaimer

THESE SAMPLES ARE PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.

Tool documentation & references

Keep exploring