将CSV上传到Sharepoint,选择列无法正确上传

时间:2016-12-20 17:22:45

标签: powershell csv sharepoint-2013

我正在创建一个脚本,将联系人信息上传到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()

我需要找到一种方法来连接"检查类别字段,以便我能够在类别字段中搜索任何复选框。到目前为止,我所做的一切都会将供应商,项目经理添加到专栏中,但之后我无法按供应商对其进行过滤,并且联系人会出现。

1 个答案:

答案 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 您的类别字段。

希望这有帮助!