Offer

News We Recently Launched AD Migrator and AD Reporter.

Migrate SharePoint List to Another Site – A Comprehensive Guide

  author
Written By Mohit Jha
Anuraag Singh
Approved By Anuraag Singh
Published On December 4th, 2024
Reading Time 9 Minutes Reading

Because of SharePoint’s immense popularity, organizations used it at an alarming rate. Although SharePoint is rich in collaboration features, its List feature is highly used in organizations. However, there might be situations when organizations need to re-construct themselves and merge with another. In these situations, they need to migrate SharePoint list to another site to maintain data consistency.

But it is not as simple as it sounds. So, in this article, we will discuss the different approaches to copy SharePoint list to another site.

Before directly moving to the solutions, let’s take a look at one of the frustrated SharePoint user queries posted on Microsoft Community.

Microsoft SharePoint user query looking for how to migrate sharepoint list to another site

An Overview of SharePoint List

Before going further in the discussion, let’s take a look at what the SharePoint list is. It is a feature in SharePoint that allows users to manage, organize, and store data in a structured format similar to a spreadsheet (excel files). Here each row represents an item along with the column that states the data about the item.

These are highly customizable and collaborative. In addition, it supports filters, views, sorting, and many more customizations as well. Users can integrate them with Microsoft 365 for real-time collaboration. Additionally, users can also use Power Automate (formerly Microsoft Flow) to automate list-related processes including sending alerts when items are added or updated.

Preparation to Migrate SharePoint List to Another Site

For a smooth transition of the SharePoint list to another SharePoint site, follow the below steps.

  • Permissions – Make sure you have permissions for both sites including creating one.
  • Optimize SharePoint List – Remove empty folders in SharePoint Online including files. It will save time and effort to avoid migrating irrelevant data into the list.
  • Test Functionality – Test the functionality of the SharePoint list to ensure each feature of the list is working before migrating it to another site.
  • Remove Items Duplicity – Find duplicate files in SharePoint Online and remove them for a flawless process.
  • Perform a Test migration – Before the actual migration, test migration with the dummy list to find the errors at the run time.

How to Copy SharePoint List to Another Site Using MVP’s Suggested Tool?

SharePoint is not used only in small or medium organizations. It is also used in the top MNCs to enhance collaboration. As a result, SharePoint acts as a central location to store crucial data. So, copying the crucial data containing SharePoint lists requires an authentic and secure tool.

Due to this, Microsoft professionals tested several tools and picked out the Most Reliable SharePoint Migration Tool. This tool incorporates several features and quick steps to simplify the process. You can also copy document library to another SharePoint site.

Step 1. Download and Execute the tool.

Download Now Purchase Now

Step 2. Choose Office 365 as Source & Destination platforms.
Choose Source & Destination platform
Step 3. Select the Sites that you want to migrate, and filter them as per necessity.

select sites
Step 4. Complete the credentials of both Source & Destination accounts.

Add Source and Destination details
Step 5. Add Users and then load Sites into the tool.

Add users and sites
Step 6. Finally, hit the Start Migration button to migrate SharePoint list to another site.

migrate SharePoint list to another site

Move SharePoint List from One Site to Another Site Using PowerShell Commands

Here is the free method to move items from one SharePoint list to another site. But only follow this method when you have technical expertise in executing the PowerShell commands. Otherwise, you will face a lot of errors.

Install-Module -Name PnP.PowerShell

Connect-PnPOnline -Url https://[entertenantname].sharepoint.com/sites/[source site] -Interactive

Get-PnPSiteTemplate -Out C:\Temp\Lists.xml -ListsToExtract “List Y”, “List Z” -Handlers Lists

Add-PnPDataRowsToSiteTemplate -Path C:\Temp\Lists.xml -List “List Y”
Add-PnPDataRowsToSiteTemplate -Path C:\Temp\Lists.xml -List “List Z”

Connect-PnPOnline -Url https://[entertenantname].sharepoint.com/sites/[destination SharePoint site] -Interactive

Invoke-PnPSiteTemplate -Path “C:\Temp\Lists.xml”
If the SharePoint list contains some attachments, then execute the below PowerShell script.

Function Copy-SPListAttachments()
{
param
(
[Parameter(Mandatory=$true)] [Microsoft.SharePoint.Client.ListItem] $SourceItem,
[Parameter(Mandatory=$true)] [Microsoft.SharePoint.Client.ListItem] $DestinationItem
)
Try {

$AllListAttachments = Get-PnPProperty -ClientObject $SourceItem -Property “AttachmentFiles”
$AllListAttachments | ForEach-Object {

$File = Get-PnPFile -Connection $SourceCont -Url $_.ServerRelativeUrl -FileName $_.FileName -Path $Env:TEMP -AsFile -force

$FileStream = New-Object IO.FileStream(($Env:TEMP+”\”+$_.FileName),[System.IO.FileMode]::Open)
$Attachment_Details = New-Object -TypeName Microsoft.SharePoint.Client.AttachmentCreationInformation
$Attachment_Details.FileName = $_.FileName

$Attachment_Details.ContentStream = $FileStream
$AttachedFile = $DestinationItem.AttachmentFiles.Add($Attachment_Details)
Invoke-PnPQuery -Connection $DestinationConn

Remove-Item -Path $Env:TEMP\$($_.FileName) -Force
}}

Catch {
write-host -f Red “Error Copying Attachments:” $_.Exception.Message
}
}

Function Copy-SPAllListItems()
{
param
(
[Parameter(Mandatory=$true)] [Microsoft.SharePoint.Client.List] $SourceList,
[Parameter(Mandatory=$true)] [Microsoft.SharePoint.Client.List] $DestinationList
)
Try {

Write-Progress -Activity “Reading Source…” -Status “Getting Items from Source List. Please wait…”
$SourceSharePointListItems = Get-PnPListItem -List $SourceList -PageSize 500 -Connection $SourceCont
SourceSharePointListItemsCount= SourceSharePointListItems.count
Write-host “Total Number of List Items Found are:”SourceSharePointListItemsCount

$SourceListFields = Get-PnPField -List $SourceList -Connection $SourceCont | Where { (-Not ($_.ReadOnlyField)) -and (-Not ($_.Hidden)) -and ($_.InternalName -ne “ContentType”) -and ($_.InternalName -ne “Attachments”) }

[int]$Count = 1
ForEach($SourceItem in $SourceSharePointListItems)
{
$ItemsValue = @{}

Foreach($SourceField in $SourceListFields)
{

If($SourceItem[$SourceField.InternalName] -ne $Null)
{

$FieldsType = $SourceField.TypeAsString

If($FieldsType -eq “User” -or $FieldsType -eq “UserMulti”)
{
$PeoplePickerValues = $SourceItem[$SourceField.InternalName] | ForEach-Object { $_.Email}
$ItemsValue.add($SourceField.InternalName,$PeoplePickerValues)
}
ElseIf($FieldsType -eq “Lookup” -or $FieldsType -eq “LookupMulti”) # Lookup Field
{
$LookupIDs = $SourceItem[$SourceField.InternalName] | ForEach-Object { $_.LookupID.ToString()}
$ItemsValue.add($SourceField.InternalName,$LookupIDs)
}
ElseIf($FieldsType -eq “URL”) #Hyperlink
{
$URL = $SourceItem[$SourceField.InternalName].URL
$Description = $SourceItem[$SourceField.InternalName].Description
$ItemsValue.add($SourceField.InternalName,”$URL, $Description”)
}
ElseIf($FieldsType -eq “TaxonomyFieldsType” -or $FieldsType -eq “TaxonomyFieldsTypeMulti”)
{
$TermGUIDs = $SourceItem[$SourceField.InternalName] | ForEach-Object { $_.TermGuid.ToString()}
$ItemsValue.add($SourceField.InternalName,$TermGUIDs)
}
Else
{

$ItemsValue.add($SourceField.InternalName,$SourceItem[$SourceField.InternalName])
}}}

#Copy Created by, Modified by, Created, Modified Metadata values
$ItemsValue.add(“Created”, $SourceItem[“Created”]);
$ItemsValue.add(“Modified”, $SourceItem[“Modified”]);

$ItemsValue.add(“Author”, $SourceItem[“Author”].Email);
$ItemsValue.add(“Editor”, $SourceItem[“Editor”].Email);

Write-Progress -Activity “ List Items starts copying:” -Status “Copying Item ID ‘$($SourceItem.Id)’ from Source List ($($Count) of $($SrcListItemsCount))” -PercentComplete (($Count / $SrcListItemsCount) * 100)

$NewItem = Add-PnPListItem -List $DestinationList -Values $ItemsValue

Copy-SPListAttachments -SourceItem $SourceItem -DestinationItem $NewItem

Write-Host “Copied Item ID from Source to Destination List:$($SourceItem.Id) ($($Count) of $($SrcListItemsCount))”
$Count++
}
}
Catch {
Write-host -f Red “Error:” $_.Exception.Message
}
}

$Source_SiteURL = “https://[tenantnamehere].sharepoint.com/sites/[sitenamehere]”
$Source_ListName = “[enter list name here]”

$Destination_SiteURL = “https://[tenantnamehere].sharepoint.com/sites/[sitenamehere]”
$Destination_ListName = “[enter list name here]”

$SourceCont = Connect-PnPOnline -Url $Source_SiteURL -Interactive -ReturnConnection
$SourceList = Get-PnPList -Identity $Source_ListName -Connection $SourceCont

$DestinationConn = Connect-PnPOnline -Url $Destination_SiteURL -Interactive -ReturnConnection
$DestinationList = Get-PnPList -Identity $Destination_ListName -Connection $DestinationConn

Copy-SPAllListItems -SourceList $SourceList -DestinationList $DestinationList

Migrate SharePoint List to Another Site Using Power Automate

Microsoft Power Automate offers the option to move one SharePoint list item to another site.

1. Setup trigger on the Source SharePoint list. Select the “When an existing item is modified” option.

migrate sharepoint list to another site

2. Search for the item in the destination list to get its ID and update it.

3. Apply the condition to make sure whether the item exists or not.
[If the item is present update it, else create it.]

Move Items from One SharePoint List to Another Using Template Method

This method is also free and one can use it if the SharePoint list size is smaller.

  1. Open the SharePoint account then move to the List settings.
  2. Click on the Save List as template option from the Permissions and Management section.
  3. Now Open the Site settings and hit the List templates option.
  4. Choose the List template that you want to download or export.
  5. Click on the Download a Copy button to save the list.
  6. Go to the destination site > Site collection.
  7. Open Site settings then Gallery.
  8. Move to the List templates and then the Documents section.
  9. Browse the downloaded file and upload it.

Migrate SharePoint List to Another Site By Exporting and Importing List in Excel File Format

Users can export the list into an Excel file format and then upload it to the destination site.

1. Go to the Source SharePoint Site > My Lists and open the SharePoint list that you want to copy.

2. Click on Export > Export to Excel and save it on your computer.

move sharepoint list to another site

3. Open the destination Site. Click on New > List.

4. Now upload the data from the downloaded Excel file.

5. Finally, Save the changes.

Post-Migration Verification

  • Review: Perform a quick check on the migrated list and identify the discrepancies.
  • Test List Functionality: Test all the features of the list to ensure everything is working as per expectations.
  • Update References: Update any references to the old list, such as links and bookmarks.
  • Clean Up the Source List: Once the list is copied to the destination SharePoint site, either delete the source list or archive it.

Conclusion

Copying a SharePoint list can be a daunting task, but with the right approach, it can be a smooth process. Now, by understanding the multiple approaches you can easily migrate SharePoint list to another site. Also do not forget, to choose the best migration method for your crucial data.

Frequently Asked Questions

Q1. How do I migrate a large SharePoint list to another site collection?
A – You can choose any of the above-suggested solutions to move items from one SharePoint list to another. But, you can pick PowerShell if you are good at it, otherwise, you should go with the MVP’s suggested tool to migrate crucial and large data lists to another SharePoint site.

Q2. Can I automate the SharePoint list migration process?
A – Yes, you can automate SharePoint list migration using PowerShell scripts or above suggested migration tool.

Q3. How do I migrate SharePoint list to another site along with the permissions?
A – While using the professional tool to copy list from one SharePoint to another, you do not need to worry about the permissions. Remember, this tool can migrate the permissions as well without hassle.

Q4. What are the risks of SharePoint list migration?
A – You might face several potential risks of SharePoint list migration. It includes data loss, broken links, permission issues, and workflow disruptions. Therefore, to minimize these risks, it’s important to copy SharePoint list to another site with careful planning.


 
  
  author

By Mohit Jha

Mohit is a writer, researcher, and editor. Cyber ​​security and digital forensics are the two subjects that keep Mohit out of his seat. In addition, he hopes that the well-researched and thought-out articles he finds will help people learn.