当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 PnP PowerShell 将 5000 多个项目添加到 SharePoint Online 列表

作者:精品下载站 日期:2024-12-14 05:16:43 浏览:14 分类:玩电脑

使用 PnP PowerShell 将 5000 多个项目添加到 SharePoint Online 列表


在使用 SharePoint 时,我经常需要将 5,000 多个项目插入到 SharePoint Online 列表中。如果通过浏览器执行此操作将非常耗时,因此可以使用 PowerShell 脚本。在本教程中,我将向您展示如何使用 PnP PowerShell 将 5,000 多个项目添加到 SharePoint Online 列表

使用 PnP PowerShell 将 5000 多个项目添加到 SharePoint Online 列表

SharePoint Online 列表的默认查看阈值为 5000 个项目,这在处理大型数据集时可能会带来挑战。 SharePoint Online 施加此阈值是为了维持性能。但是,PnP PowerShell 可以有效地将 5000 多个项目添加到 SharePoint Online 列表。

在这里,我创建了一个包含以下列的 SharePoint Online 列表:

  • 标题(默认列)
  • 描述
  • 数量

空列表类似于以下屏幕截图:

[玩转系统] 使用 PnP PowerShell 将 5000 多个项目添加到 SharePoint Online 列表

我将向您展示如何使用以下两种方法向上述 SharePoint 列表添加超过 5000 个项目。

方法一:批量处理

最实用的方法是使用批处理。此方法允许我们以较小的块添加项目,确保我们不会达到列表视图阈值。

以下是使用 PnP PowerShell 的示例脚本:

# Connect to SharePoint Online
Connect-PnPOnline -Url "https://szg52.sharepoint.com/sites/PowerPlatformFAQs/" -Interactive

# Define list name
$listName = "LargeInventoryList"

# Prepare data (example with 5500 items)
$items = 1..5500 | ForEach-Object {
    @{
        Title = "Item $_"
        Description = "Description for item $_"
        Quantity = Get-Random -Minimum 1 -Maximum 1000
    }
}

# Process items in batches
$batchSize = 2000
for ($i = 0; $i -lt $items.Count; $i += $batchSize) {
    $batch = $items[$i..($i + $batchSize - 1)]
    
    $list = Get-PnPList -Identity $listName
    $batch | ForEach-Object {
        Add-PnPListItem -List $list -Values $_
    }
    
    Write-Host "Processed items $i to $($i + $batch.Count - 1)"
}

Write-Host "All items added successfully!"

此脚本以 2000 个为批次添加项目,这有助于避免达到列表视图阈值。

下面的屏幕截图显示它向 SharePoint 列表添加了 5,500 个项目。我使用 VS code 执行脚本,但您可以根据自己的喜好使用任何编辑器。

[玩转系统] 使用 PnP PowerShell 将 5000 多个项目添加到 SharePoint Online 列表

要确认这一点,请打开 SharePoint Online 列表设置页面,您可以在其中查看列表中显示的项目总数。

[玩转系统] 使用 PnP PowerShell 将 5000 多个项目添加到 SharePoint Online 列表

查看使用 PnP PowerShell 从 SharePoint 列表中删除所有项目

方法 2:使用 PnP 批处理 Cmdlet

让我向您展示使用 PnP PowerShell 将项目批量插入 SharePoint Online 列表的另一种方法。

PnP PowerShell 提供了专用的批处理 cmdlet,可以进一步优化该过程。

这是完整的 PowerShell 脚本。

# Connect to SharePoint Online
Connect-PnPOnline -Url "https://szg52.sharepoint.com/sites/PowerPlatformFAQs/" -Interactive

# Define list name
$listName = "LargeInventoryList"

# Prepare data (example with 5500 items)
$items = 1..5500 | ForEach-Object {
    @{
        Title = "Item $_"
        Description = "Description for item $_"
        Quantity = Get-Random -Minimum 1 -Maximum 1000
    }
}

# Process items in batches
$batchSize = 2000
for ($i = 0; $i -lt $items.Count; $i += $batchSize) {
    $batch = $items[$i..($i + $batchSize - 1)]
    
    Invoke-PnPQuery -ErrorAction Stop
    $batchCmd = New-PnPBatch
    
    $batch | ForEach-Object {
        Add-PnPListItem -List $listName -Values $_ -Batch $batchCmd
    }
    
    Invoke-PnPBatch -Batch $batchCmd
    
    Write-Host "Processed items $i to $($i + $batch.Count - 1)"
}

Write-Host "All items added successfully!"

此方法使用 New-PnPBatchInvoke-PnPBatch cmdlet 创建和执行批处理,这对于大型操作来说更加高效。

结论

通过使用 PnP PowerShell,您可以轻松地将 5000 多个项目添加到 SharePoint Online 列表。我解释了两种方法,并向您展示了如何使用 PnP PowerShell 将 5000 多个项目添加到 SharePoint Online 列表

如果您还有任何疑问,请随时在下面发表评论。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯