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"