A sample powershell script to import a CSV data into a list after deleting the existing items using the client object model.
$csv = Import-CSV data.csv
$siteUrl = "https://office365 url"
$listName = "listName"
$userName = "username"
$password = Read-Host -Prompt "Enter password" -AsSecureString
$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($siteUrl)
$credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($userName, $password)
$context = New-Object Microsoft.SharePoint.Client.ClientContext($siteUrl)
$context.Credentials = $credentials
[Microsoft.SharePoint.Client.Web]$web = $context.Web
[Microsoft.SharePoint.Client.List]$list = $web.Lists.GetByTitle($listName)
$query = [Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery(10000, 'Title')
$items = $list.GetItems( $query )
$context.load($items)
$context.ExecuteQuery();
$count = $items.Count - 1
write-host "$count items found. Deleting."
$deleteGroup = 0
for($intIndex = $count; $intIndex -gt -1; $intIndex--)
{
$items[$intIndex].DeleteObject();
write-host "`r".padleft(40," ") -nonewline
write-host "Remaining items $intIndex" -nonewline
$deleteGroup++
if($deleteGroup -eq 20)
{
$context.ExecuteQuery();
$deleteGroup = 0;
}
}
$intIndex = 0;
$addGroup = 0;
write-host "`nImporting data..."
foreach ($row in $csv) {
[Microsoft.SharePoint.Client.ListItemCreationInformation]$itemCreateInfo = New-Object Microsoft.SharePoint.Client.ListItemCreationInformation;
[Microsoft.SharePoint.Client.ListItem]$item = $list.AddItem($itemCreateInfo);
$item["Title"] = $row.Title;
############################
# More columns here...
############################
$item.Update();
$addGroup++
if($addGroup -eq 20)
{
$context.ExecuteQuery();
$addGroup = 0;
}
write-host "`r".padleft(40," ") -nonewline
write-host "Count : $intIndex" -nonewline
$intIndex++
}
Write-Host "Import completed"
