none
Powershell - Créer CSV à partir d'une vue Sharepoint RRS feed

  • Question

  • Bonjour à tous,

    Je suis en train de travailler sur un script powershell qui créer un csv d'un vue Sharepoint dans le but de le faire tourner tout les jours.

    Malheureusement je débute et je me heurte à plusieurs problème.

    Le CSV qui sort ne me donne que les 30 premiers items alors qu'il y en à plus d'une centaine. et certaines colonnes sont vides alors qu'elles ne le sont pas dans SharePoint. J'ai rentré les nom des colonnes de la vue à la main mais je cherche la commande qui permet de les récupérer automatiquement.

    Je vous joins le code que j'ai fais

    $web = Get-SPWeb $webUrl
        $splist = $web.GetList($listUrl)
        $view = $splist.Views["Extract IRIS"] 
        $items = $splist.GetItems($view)
    	$Listlocation = $destination+"\"+"Iris.csv"
        $items | Select "Name","Title", "Domain", "EquipmentSet", "Document ID"  | Export-Csv -Path $Listlocation
        $web.Dispose()
    D'avance merci à ceux qui pourrons m'aider

    vendredi 10 février 2017 10:23

Toutes les réponses

  • Salut,

    Voici comment je le ferais :

    $web = Get-SPWeb $webUrl
        $splist = $web.GetList($listUrl)
        $view = $splist.Views["Extract IRIS"] 
    
        $query = New-Object Microsoft.SharePoint.SPQuery
            
    	#Use the CAML query defined in the View for more flexibility		
            $query.Query = $view.Query
    
             $items = $splist.GetItems($query)
    
    	$Listlocation = $destination+"\"+"Iris.csv"
        $items | Select $splist.Views["Extract IRIS"].Fields | Export-Csv -Path $Listlocation
        $web.Dispose()

    J'ai trouvé un exemple au cas ou ça ne fonctionnerais pas : https://bobeldredge.wordpress.com/2014/11/03/sharepoint-powershell-export-list-data-from-a-view-to-csv-and-save-in-a-sharepoint-library/

    Autrement, j'ai réalisé un script qui fait un peu ce que tu recherches mais par courriel :

    https://gallery.technet.microsoft.com/Send-automated-time-based-eb64c544

    Merci

    Samuel Levesque MVP | http://sharepointerie.com | SVP utiliser le bouton "Marquer comme réponse" sur les réponses qui vous aide car cela permet aux personnes qui peuvent rencontrer le même problème que vous, de retrouver rapidement quelle est la réponse qui a résolu leur problème. De plus, cela encourage aussi la personne qui a répondu à votre question, à répondre aux suivantes...


    mardi 14 février 2017 04:06
  • Bonjour Samuel et merci de ta réponse.

    Dans le script que tu m'a fourni  la parti suivante ne retourne rien. Je vais continuer de creuser, je pense qu'il manque une petite boucle quelque part pour que cela fonctionne mieux

    $splist.Views["Extract IRIS"].Fields
    jeudi 16 février 2017 08:11
  • J'ai modifié le script que tu m'a mis en lien et le souci est qu'il me rempli que la première colonne sur les 5, alors que les 5 colonnes se trouve dans les variables.

    $lists = "QSE Documents"
    $viewname = "Extract IRIS"
    
    #Add-PSSnapin Microsoft.Sharepoint.Powershell
    
    $web = Get-SPWeb -Identity $url
    
    $list = $web.lists[$lists]
    $date = get-date -format yyyy-MM-dd
    $view = $list.views[$viewname]
    
    $vfields=$view.viewfields
    $lfields=$list.fields
    $efields=@()
    foreach($vf in $vfields)
    {
    	foreach($lf in $lfields)
    	{
    		if($lf.internalname -eq $vf)
    		{
    			$efields += $lf.title
    		}
    	}
    }
    $items = $list.getitems($viewname)
    if($items.count -gt 0)
    {
    $exportlist = $null
    $exportlist = @()
    $items | foreach {
    	$hash = $null
    	$hash = @{}
    	foreach($ef in $efields)
    	{
    		$hash.add($ef, $_[$ef])
    	}
    	$obj = New-Object PSObject -Property $hash
    	$exportlist += $obj
    }
    $sel=@()
    foreach($efield in $efields)
    {
    	$sel+=$efield
    }
    $expath = "C:\Export\"+[string]$date+'-'+$lists+'.csv'
    $exportlist |select $sel | Export-Csv -path $expath -notypeinformation
    
    }
    $web.dispose()


    • Modifié Fides07 jeudi 16 février 2017 13:21
    jeudi 16 février 2017 13:20

  • $exportlist | select $sel.ToStringCollection() | Export-Csv -path $expath -notypeinformation

    Est-ce que ça fonctionne avec le ToStringCollection ?
    jeudi 16 février 2017 18:31

  • $exportlist | select $sel.ToStringCollection() | Export-Csv -path $expath -notypeinformation

    Est-ce que ça fonctionne avec le ToStringCollection ?

    Il me sort cette erreur si je rajoute le ToStringCollection

    Method invocation failed because [System.Object[]] doesn't contain a method named 'ToStringCollection'.
    At C:\Sopra\TMA\Easi\Export_GED\QSE_view_2.ps1:47 char:45
    + $exportlist | select $sel.ToStringCollection <<<< () | Export-Csv -path $expath -notypeinformation 
        + CategoryInfo          : InvalidOperation: (ToStringCollection:String) [], RuntimeException
        + FullyQualifiedErrorId : MethodNotFound

    vendredi 17 février 2017 10:26