Your input shapes our product. Suggest a feature now →
  1. Home
  2. Compare
  3. Copy SharePoint List Items: 4 Methods Compared

Copy SharePoint List Items to Another List or Site: 4 Methods Compared

Every method for copying SharePoint list items across lists or sites preserves something different. Get it wrong and you lose the column types, the attachments, the lookup relationships, or the original Created By timestamps. This comparison covers what each approach actually delivers.

Method Scale Column types preserved Attachments Created By / dates Effort
Manual (browser UI) 1-20 items Partial No No High
Export to Excel / re-import 100s of items No (all text) No No Medium
PnP PowerShell Any scale Yes (with scripting) Yes (extra steps) Yes (SystemUpdate) High (scripting)
ShareMaster Copy To / Clone Master Any scale Yes Yes Yes Low

Why Copying List Items Is Harder Than It Looks

A SharePoint list is not a spreadsheet. It carries column types (person pickers, lookup columns, choice fields, managed metadata), item-level version history, attachments stored as child objects, and system metadata fields like Created By and Modified that SharePoint normally prevents third-party writes from touching. Moving that structure between lists within a site is already non-trivial. Across site collections or tenants, the complexity increases further.

Two constraints drive most of the trade-offs below. First, the SharePoint REST API and CSOM write standard list item properties under the authenticated user, overwriting original authorship unless the caller has explicit system update permissions. Second, cross-site-collection lookup columns cannot be preserved as working relationships: they must either be flattened to a text value or re-pointed at a matching column in the destination list.

Method 1: Manual Copy-Paste via the Browser

How it works

Open the source list, switch to grid (Quick Edit) view, select the rows you need, copy them to the clipboard, then paste into a destination list opened in Quick Edit in another tab. For very small lists with simple column types, this is the fastest start for a one-off task.

What it preserves and what it loses

Data type Outcome
Single-line text and number columns Preserved (manual re-entry or paste)
Choice columns Preserved only if the destination list has identical choices configured
Lookup columns Lost - must be re-linked to the destination lookup source manually
Person or Group columns Preserved only if the user exists in the destination tenant
Attachments Not copied - must be downloaded and re-attached individually
Created By / Modified By / dates Reset to the copying user and current timestamp
Item version history Not preserved

Verdict: suitable only for very small lists where metadata fidelity doesn't matter.

Method 2: Export to Excel, Then Import

How it works

From the list view, select "Export to Excel". This downloads a .iqy file that opens in Excel as a data-linked table. The data can be copied, reformatted, and re-imported into a new list using SharePoint's "Import from spreadsheet" option, or pasted into an existing list's grid view.

The Excel export is a snapshot of display values, not the underlying data model. Lookup columns export as the display text of the looked-up item, not the item ID. When re-imported, SharePoint has no way to reconstruct the relationship. The destination list gets a text column containing the display value rather than a working lookup column.

What it preserves and what it loses

Data type Outcome
Text values Preserved as text
Column types (choice, lookup, person, managed metadata) All flattened to single-line text on import
Multi-value columns Exported as semicolon-separated text; may not import cleanly
Attachments Not included in the export
Created By / Modified By / dates Reset on import
Managed metadata term hierarchy Term label exports; term GUID and hierarchy are lost

Verdict: useful for quick data extraction and reporting, but not for migrating a live list with working column types. The round-trip destroys the list schema.

Method 3: PnP PowerShell

How it works

PnP PowerShell exposes Get-PnPListItem and Add-PnPListItem cmdlets that together allow a scripted copy of items between any two lists, including across site collections and across tenants. The script must handle schema differences, attachment downloads and re-uploads, and the system update permission requirement for metadata fidelity.

General script shape

  1. Connect to the source site with Connect-PnPOnline and enumerate items with Get-PnPListItem -List "SourceList" -PageSize 500.
  2. For each item, map source column names to destination column names and build a value hashtable.
  3. Connect to the destination site and call Add-PnPListItem -List "DestList" -Values $hashtable.
  4. For attachments: call Get-PnPListItemAttachment to download each file, then Add-PnPListItemAttachment on the new item.
  5. To preserve Created By and original modification dates, the calling account needs Site Collection Admin rights and the script must call Set-PnPListItem -SystemUpdate after the initial add.

Key limitations

  • Cross-site lookup columns won't carry over as working lookups. The destination list needs its own independent lookup source configured.
  • Person columns require the user to exist in the destination tenant. In a cross-tenant migration, this means pre-provisioning users or accepting that person fields will be empty post-copy.
  • Large lists hit REST throttling. Any script handling tens of thousands of items needs retry logic with exponential back-off and a checkpointing strategy to resume after failures.

Verdict: the most flexible option for admins who are comfortable writing and testing PowerShell. For lists over 5,000 items or for cross-tenant work, the scripting effort is significant.

Method 4: ShareMaster Copy To and Clone Master

ShareMaster's Copy To handles same-tenant moves and copies of lists and libraries between site collections through a point-and-click interface. Clone Master extends this to cross-tenant migrations, including source-to-destination column mapping for schema differences.

Data type Outcome
Column types (choice, managed metadata, person) Preserved in the destination list
Attachments Copied with each item automatically
Created By / Modified By / dates Preserved via migration API write-back
Cross-tenant person columns Mapped where the destination user account exists; flagged for review where it does not
Lookup columns Within-site lookups preserved; cross-site lookups mapped to text with the display value
Large lists (10,000+ items) Handled with built-in resume and throttle management

For a same-tenant move between site collections, Copy To completes this in a few clicks without scripting. For cross-tenant work (a merger, divestiture, or client tenant consolidation), Clone Master is the appropriate path. See the step-by-step guide to copying a SharePoint list to another site for the full walkthrough.

Decision Matrix: Which Method for Your Situation

Situation Best method
Under 20 items, no lookup columns, metadata fidelity not required Manual copy via browser
Need a flat data extract for reporting or a spreadsheet hand-off Export to Excel
Hundreds or thousands of items, comfortable with PowerShell, same tenant PnP PowerShell
Cross-tenant migration, full metadata fidelity required Clone Master
Same-tenant copy with attachments, no scripting appetite Copy To (ShareMaster)
Large list (5,000+ items), resume support needed Clone Master, or PnP with custom checkpointing
MSP managing many client tenants, repeatable process needed Clone Master

Frequently Asked Questions

Can you copy SharePoint list items to another site?

Yes, but the built-in Move To / Copy To feature in SharePoint Online only moves files in document libraries, not list items. For list items across sites or tenants you need PowerShell (PnP), a manual export-and-import process, or a dedicated migration tool such as ShareMaster Clone Master.

Does exporting a SharePoint list to Excel preserve all columns?

Exporting to Excel exports visible column values as plain text, but lookup columns are flattened to their display value (the relationship is lost), multi-valued columns may not round-trip cleanly, and attachments are not included. Re-importing the spreadsheet as a new list loses all column types: every column comes back as single-line text.

Does copying SharePoint list items preserve the Created By and Modified By fields?

By default, no. SharePoint sets Created By and Modified By to the account performing the copy. Preserving them requires Site Collection Admin rights and either SystemUpdate (via PnP PowerShell) or a migration API that supports metadata write-back, such as the SharePoint Migration API used by Clone Master.

Can you move a SharePoint list to another site collection?

The native Move To feature in SharePoint Online does not support moving lists between site collections. Options are PnP PowerShell (scripting the list schema creation and item migration) or a dedicated migration tool such as ShareMaster Clone Master, which handles the full list schema and item content together in one operation.

Try ShareMaster free for 14 days