How to Rename SharePoint Column Programmatically (PowerShell / C#)?
Here is how we can rename SharePoint list or site field or column programmatically with PowerShell and C# object model code:
PowerShell script to Rename a SharePoint Field:
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
$Web= Get-SPWeb "https://sharepoint.crescent.com"
#Get the "Risk Metrics" List
$list= $web.Lists.TryGetList("Risk Metrics")
#Get "Project Name" Field
$field = $list.fields | where {$_.Title -eq "Project Name"}
#Set Field Display Name and Update
$field.Title ="Program Name"
$field.Update()
Rename a SharePoint Field Programmatically (C#):
using(SPSite site=new SPSite("https://sharepoint.crescent.com"))
{
//Get the "Risk Metrics" List
SPList list = site.RootWeb.Lists["Risk Metrics"];
//Get "Project Name" Field
SPField field = list.Fields["Project Name"];
//Set Field Display Name and Update
field.Title = "Program Name";
field.Update();
//You can also use: list.Fields["Project Name"].Title = "Project Name";
//list.Update();
}
PowerShell to change field display name in SharePoint site collection:
Add-PSSnapin "Microsoft.SharePoint.Powershell" -EA SilentlyContinue
#Variables
$SiteURL = "https://sharepoint.crescent.com/"
$OldColumnName ="Department"
$NewColumnName ="Entity"
#Get the Site
$site = Get-SPSite $SiteURL
#Iterate through each web (Sub-Site)
foreach ($web in $site.AllWebs)
{
#Array to Hold Lists with specific column
$ListsToProcess= @()
#Get All Lists
$Lists = $web.Lists
#ITerate through each list
foreach ($list in $lists)
{
#Iterate through each column
foreach ($column in $list.Fields)
{
#Check for the specific column
if ($column.Title -eq $OldColumnName)
{
Write-Host "Found the Column in list: " $list.Title " at "$web.Url
#Send it to an Array
$ListsToProcess+=$List
}
}
}
#Process each list and rename the columns
foreach ($list in $ListsToProcess)
{
#Get the Old column by its name
$column = $list.fields | where {$_.Title -eq $OldColumnName}
#rename sharepoint list column powershell
$column.Title = $NewColumnName
$column.Update()
}
$web.Dispose()
}
$site.Dispose()
Similarly, to rename a site column, use:
$Column = $web.Fields.getFieldByInternalName("Title")
$Column.Title = "Project Title"
$Column.PushChangesToLists = $True
$Column.Update()
Hi Salaudeen,
How to rename the column/field using sharepoint webservices ?Can i do that ?