2017-03-17 20 views

答えて

0

できます。しかし、SharePointのリストでは、ID以外のユニークな列はありません。 CSVにそのIDがない可能性があります。したがって、CSVとSPの両方のリストに一意の桁の列が必要です。 DataTableでCSVとSharePointリストのすべての行を取得し、両方のDataTableを比較して異なる値を取得し、それらの行をSPリストにアップロードします。

+0

csvとリストを比較する方法がわかりません。私は比較し、両方のリストに欠けている要素を取得する....しかし、私はリストと比較する必要があります。 "$ _ ['Code'] -ne $ row.codeと$ _ ['code2'] -ne $ row.code2" – zaknafein

0

あなたのCSVのデータはリスト内のデータと同じ順番であると考えられます。つまり、CSVの最初の行とIDの短いデータが降順で比較されます。

CSVヘッダー名はリスト列と同じにする必要があります。私は1つの列のためにそれを行っている

$SPWeb = Get-SPWeb http://mysharepoint.org 
$SPList = $SPWeb.Lists["My List"] 

$listItems = $SPList.GetItems() 

##Import your CSV 
$csv = Import-Csv "D:\Test.csv" 
$counter=0 

foreach ($item in $csv)   
{ 

    if($listItems[$counter]["Column"] -ne $item.Column) 
    { 
     #Fetch that item by ID and Update 
     $SPListItem = $SPList.GetItemByUniqueId($listItems[$counter]['ID']) 
     $SPListItem["Column"] = $item.Column 
     $SPListItem.Update() 
     $counter=$counter+1 

    } 

} 

が、それは列のn個のために行うことができます。

インポートCSVとはまた、このようなものを別途のlistItemsを取得し、列を比較、各行を反復処理します。

これは私の最初の答えです。それが働いていれば教えてください:)

+0

の条件から値を取得できます。これは動作しません。リストにない項目を追加する必要がありますが、csvがあります。私が定義するユニークな要素は、$ list.items | where-object {$ _ ['code'] -eq $ row.code}です。リストには多くの要素が含まれています。 – zaknafein

関連する問題