Top 4 Methods to Move/ Migrate SharePoint List to Another Site
There are different types of sites in SharePoint Online. The main components of SharePoint are the list and library that store the different information. But for several reasons such as merger and tenant-to-tenant migration, there is a need to migrate SharePoint list to another site. However, lacking the proper knowledge to do so, most of the administrators failed.
Table of Content
But after reading this write-up, no one will fail to copy SharePoint list to another site. Let’s see how.
Different Methods to Move SharePoint List to Another Site
There are different possible methods to transfer SharePoint list to another site.
- One is the template method in which there is a need to create a template of the SharePoint list and export it to the destination.
- The second one is performed with the help of PowerShell commands.
- Next one is to use the Power Automate.
- The final and expert-recommended method is the automated tool to successfully migrate SharePoint list from one site to another. Automated tool can also move SharePoint site to another site. Here you will get a complete discussion on all the methods so that you can go with the right one. Let’s explore the method sequentially.
Method 1. Migrate SharePoint List to Another Site Using Template Method
In this method, you need to export the required list from the source Office 365 account and upload it to the destination Office 365 account. This process is suitable for a small number of lists with less amount of data. This process becomes time-consuming when the lists are more and heavier. Now. let’s discuss the steps to complete the process without hassle.
Step 1. Save List as Template from the Source SharePoint Site
- Sign to the destination SharePoint account and then open List Settings.
- Under the Permissions and Management section, hit the “Save list as template” option.
Step 2. Download SharePoint List
- Open the Site Settings.
- From the galleries section, click on the List Templates option.
- From the List Template Gallery window, select the list template that you want to export.
- Finally, hit the Download a copy button to download the SharePoint list(.stp).
Step 3. Migrate SharePoint List to Another Site
- Open the destination site and then Site collection.
- Click on Site Settings and move to the Galleries section.
- Choose the List templates and go to the Documents tab then hit the Upload Document option.
- Browse the downloaded .stp file and press the OK button.
Method 2. Move SharePoint List to Another Site Using PowerShell Commands
Migration of the SharePoint list to another site is also possible with the PowerShell commands. However, it is not for non-tech users because it requires a lot of technical knowledge. It is completely based on the commands. If any of the commands is executed non-sequentially or wrongly then results will be unexpected. Due to this, the experts do not prefer this method. It also requires some pre-requisites before starting the process and these are:-
• Create a separate list, and both lists should have the same columns.
• Run PowerShell as an administrator.
After fulfilling the prerequisites now follow the below commands to migrate SharePoint list to another site.
Install-Module -Name PnP.PowerShell
Connect-PnPOnline -Url https://[entertenantname].sharepoint.com/sites/[name of source site] -Interactive
Get-PnPSiteTemplate -Out C:\Temp\Lists.xml -ListsToExtract “List A”, “List B” -Handlers ListsGet the List Data
Add-PnPDataRowsToSiteTemplate -Path C:\Temp\Lists.xml -List “List A”
Add-PnPDataRowsToSiteTemplate -Path C:\Temp\Lists.xml -List “List B”
Connect-PnPOnline -Url https://[entertenantname].sharepoint.com/sites/[name of destination site] -Interactive
Invoke-PnPSiteTemplate -Path “C:\Temp\Lists.xml”
If the list items have attachments, then run the below commands command:
Function Copy-SPOAttachments()
{
param
(
[Parameter(Mandatory=$true)] [Microsoft.SharePoint.Client.ListItem] $SourceItem,
[Parameter(Mandatory=$true)] [Microsoft.SharePoint.Client.ListItem] $DestinationItem
)
Try {
$Attachments = Get-PnPProperty -ClientObject $SourceItem -Property “AttachmentFiles”
$Attachments | ForEach-Object {FileName = f1
$File = Get-PnPFile -Connection $SourceConn -Url $_.ServerRelativeUrl -f1 $_.f1 -Path $Env:TEMP -AsFile -force
$FileStream = New-Object IO.FileStream(($Env:TEMP+”\”+$_.f1),[System.IO.FileMode]::Open)
$AttachmentInfo = New-Object -TypeName Microsoft.SharePoint.Client.AttachmentCreationInformation
$AttachmentInfo.f1 = $_.f1
$AttachmentInfo.ContentStream = $FileStream
$AttachFile = $DestinationItem.AttachmentFiles.Add($AttachmentInfo)
Invoke-PnPQuery -Connection $DestinationConn
Remove-Item -Path $Env:TEMP\$($_.f1) -Force
}
}
Catch {
write-host -f Red “Error Copying Attachments:” $_.Exception.Message
}
}
Function Copy-SPOListItems()
{
param
(
[Parameter(Mandatory=$true)] [Microsoft.SharePoint.Client.List] $SourceList,
[Parameter(Mandatory=$true)] [Microsoft.SharePoint.Client.List] $DestinationList
)
Try {
Write-Progress -Activity “Reading ” -Status “Loading”
$SourceListItems = Get-PnPListItem -List $SourceList -PageSize 400 -Connection $SourceConn
$SourceListItemsCount= $SourceListItems.count
Write-host “Total Number of Items Found:”$SourceListItemsCountInternaleName = In1
$SourceListFields = Get-PnPField -List $SourceList -Connection $SourceConn | Where { (-Not ($_.ReadOnlyField)) -and (-Not ($_.Hidden)) -and ($_.In1 -ne “Content”) -and ($_.In1 -ne “ files”) }
[int]$Counter = 1
ForEach($SourceItem in $SourceListItems)
{
$ItemValue = @{}
Foreach($SourceField in $SourceListFields)
{
If($SourceItem[$SourceField.In1] -ne $Null)
{
$FieldType = $SourceField.TypeAsStringIf($FieldType -eq “User” -or $FieldType -eq “UserMulti”) #People Picker Field
{
$PeoplePickerValues = $SourceItem[$SourceField.In1] | ForEach-Object { $_.Email}
$ItemValue.add($SourceField.In1,$PeoplePickerValues)
}
ElseIf($FieldType -eq “Lookup” -or $FieldType -eq “LookupMulti”) # Lookup Field
{
$LookupIDs = $SourceItem[$SourceField.In1] | ForEach-Object { $_.LookupID.ToString()}
$ItemValue.add($SourceField.In1,$LookupIDs)
}
ElseIf($FieldType -eq “URL”) #Hyperlink
{
$URL = $SourceItem[$SourceField.In1].URL
$Description = $SourceItem[$SourceField.In1].Description
$ItemValue.add($SourceField.In1,”$URL, $Description”)
}
ElseIf($FieldType -eq “TaxonomyFieldType” -or $FieldType -eq “TaxonomyFieldTypeMulti”) #MMS
{
$TermGUIDs = $SourceItem[$SourceField.In1] | ForEach-Object { $_.TermGuid.ToString()}
$ItemValue.add($SourceField.In1,$TermGUIDs)
}
Else
{
#Get Source Field Value and add to Hashtable
$ItemValue.add($SourceField.In1,$SourceItem[$SourceField.In1])
}
}
}
$ItemValue.add(“Created”, $SourceItem[“Created”]);
$ItemValue.add(“Modified”, $SourceItem[“Modified”]);
$ItemValue.add(“Author”, $SourceItem[“Author”].Email);
$ItemValue.add(“Editor”, $SourceItem[“Editor”].Email);Write-Progress -Activity “List Items are copying:” -Status “ID Copies ‘$($SourceItem.Id)’ from Source List ($($Counter) of $($SourceListItemsCount))” -PercentComplete (($Counter / $SourceListItemsCount) * 100)
$NewItem = Add-PnPListItem -List $DestinationList -Values $ItemValue
Copy-SPOAttachments -SourceItem $SourceItem -DestinationItem $NewItemWrite-Host “ID Copied$($SourceItem.Id) ($($Counter) of $($SourceListItemsCount))”
$Counter++
}
}
Catch {
Write-host -f Red “Error:” $_.Exception.Message
}
}
$SourceSiteURL = “https://[tenantnamehere].sharepoint.com/sites/[sitenamehere]”
$SourceListName = “[listnamehere]”$DestinationSiteURL = “https://[tenantnamehere].sharepoint.com/sites/[sitenamehere]”
$DestinationListName = “[listnamehere]”
$SourceConn = Connect-PnPOnline -Url $SourceSiteURL -Interactive -ReturnConnection
$SourceList = Get-PnPList -Identity $SourceListName -Connection $SourceConn$DestinationConn = Connect-PnPOnline -Url $DestinationSiteURL -Interactive -ReturnConnection
$DestinationList = Get-PnPList -Identity $DestinationListName -Connection $DestinationConn
Copy-SPOListItems -SourceList $SourceList -DestinationList $DestinationList
Method 3. How to Copy SharePoint List Item to Another List Using Power Automate?
Go with the below steps:-
1. Choose Trigger: Select “When an item is created or modified” and choose the “Express Pickup Hold Rack” list from the SharePoint site.
2. Apply Condition: Verify if the “Collected” column value is “YES”.
3. Create Item in Archive: In the “If yes” branch, add the “Create item” action, choose the “Express Pickup Hold Rack Archive” list, and perform mapping all the fields from the original items to the archive list.
4. Delete Your Original Item: Afterwards, add the “Delete item” action to remove the items from the “Express Pickup Hold Rack” list after archiving them.
Method 4. Automated Tool to Migrate SharePoint List to Another Site
It’s time to discuss the expert’s recommended automated tool to transfer SharePoint list to another site. Experts recommend the Migrator Wizard SharePoint Online Migration Tool to copy SharePoint list to another site and for SharePoint Online tenant to tenant migration as well. It is proficient to complete the process without hassle. To execute the automated tool, you do not need to be efficient at technical aspects.
This tool provides an interactive interface due to which even the non-tech users can also operate this tool. For an error-free process, there are different features incorporated in this tool such as Delta migration for migrating newly arrived data and many more. To move SharePoint list to another site, you need to execute the below steps.
Step 1. Download and Run the tool. Select Office 365 as the Source and Destination platform.
Step 2. Tick the checkbox of the sites and other data that needs to be migrated under the workload section. Apply the Date filter to filter the essential data.
Step 3. Complete and validate the Source Office 365 account credentials and then Next.
Step 4. Provide the details of the Destination Office 365 account. Make sure to validate them and then hit Next.
Step 5. Load the users into the tool using Fetch Users, Import Users, and Download template options.
Step 6. Finally, click on Start Migration to copy SharePoint list to another site.
Conclusion
When you are not aware of the best way to migrate the SharePoint list to another site then it becomes a complex and hectic process. Therefore through this write-up, we have elaborated on different methods to migrate SharePoint list to another site. Because of several limitations of the template, Power Automate, and PowerShell methods, experts advised going with the automated tool.
Frequently Asked Questions
Q1. Can I copy my SharePoint list to another SharePoint site?
A: Yes, you can by applying the below quick 5 steps.
- Download and Run the tool.
- Choose Source & Destination platforms.
- Select Sites and filter them.
- Complete both account credentials.
- Add Sites and Users then Start Migration.
Q2. How can I export my SharePoint list into a template?
A: For exporting the SharePoint list into a template.
- Open List Settings.
- Hit the option Save list as template.
- Assign a name and description to the template.
- Now, Download it into a .stp file.