我正在创建一个脚本,将联系人信息上传到sharepoint列表。其中一列(类别)是一个选项字段,其中包含多个选项的复选框。如果我的CSV中有多个类别,我需要找出一种方法来向此字段添加检查。例如,如果我的CSV中的联系人同时需要共享点列表中的项目同时拥有两者,则其中两个复选框是供应商和项目经理。这是我到目前为止的代码:
# Setup the correct modules for SharePoint Manipulation
if ( (Get-PSSnapin -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null )
{
Add-PsSnapin Microsoft.SharePoint.PowerShell
}
$host.Runspace.ThreadOptions = "ReuseThread"
#Open SharePoint List
$SPServer="http://SPsite/itv2"
$SPAppList="/Lists/Test CSV Upload"
$spWeb = Get-SPWeb $SPServer
$spData = $spWeb.GetList($spWeb.ServerRelativeURL + $SPAppList)
$InvFile="C:\Scripts\ContactUpload.csv"
# Get Data from Inventory CSV File
$FileExists = (Test-Path $InvFile -PathType Leaf)
if ($FileExists) {
"Loading $InvFile for processing…"
$tblData = Import-CSV $InvFile
} else {
"$InvFile not found – stopping import!"
exit
}
# Loop through Applications add each one to SharePoint
"Uploading data to SharePoint…."
foreach ($row in $tblData)
{
"Adding entry for "+$row."GivenName".ToString()
$spItem = $spData.AddItem()
$spItem["First Name"] = $row."GivenName".ToString()
$spItem["Last Name"] = $row."Surname".ToString()
$spItem["Email Address"] = $row."Email1EmailAddress".ToString()
$spItem["Business Phone"] = $row."BusinessPhone".ToString()
$spItem["Mobile Phone"] = $row."MobilePhone".ToString()
$spItem["Categories"] = $row."Categories"
$spItem.Update()
}
"—————"
"Upload Complete"
$spWeb.Dispose()
$spWeb.Dispose()
我需要找到一种方法来连接"检查类别字段,以便我能够在类别字段中搜索任何复选框。到目前为止,我所做的一切都会将供应商,项目经理添加到专栏中,但之后我无法按供应商对其进行过滤,并且联系人会出现。
答案 0 :(得分:0)
要更新多选值字段,您需要使用SPFieldMultiChoiceValue对象。例如:
$choicevalues = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue
$choicevalues.Add("Choice 1")
$choicevalues.Add("Choice 2")
$list.Fields["Categories"].ParseAndSetValue($spItem,$choicevalues)
因此,您首先需要将 $ row。" Categories" 变量拆分为数组,然后在更新前将每个类别添加到 $ choicevalues 您的类别字段。
希望这有帮助!