2016-12-20 6 views
0

連絡先情報を共有リストにアップロードするためのスクリプトを作成しています。列の1つ(カテゴリ)は複数の選択肢のチェックボックスを含む選択フィールドです。 CSVに複数のカテゴリがある場合、このフィールドに小切手を追加する方法を理解する必要があります。たとえば、チェックボックスの2つがベンダとプロジェクトマネージャです。私のCSVの連絡先に両方がある場合は、共有リストの項目が必要です。ここで私が持っているコードは、これまでのところです:Sharepointに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

複数の値のフィールドを更新するには、SPFieldMultiChoiceValueオブジェクトを使用する必要があります。たとえば:。

$choicevalues = New-Object Microsoft.SharePoint.SPFieldMultiChoiceValue 
$choicevalues.Add("Choice 1")    
$choicevalues.Add("Choice 2")  
$list.Fields["Categories"].ParseAndSetValue($spItem,$choicevalues) 

だから、最初の配列の中に「カテゴリー」変数あなた$行を分割する必要がありますし、その後、あなたのカテゴリーフィールドを更新する前に$ choicevalues を各カテゴリを追加します。

このヘルプが必要です。

関連する問題