извлекать данные из библиотеки документов SharePoint в CSV с помощью powershell - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь извлечь данные из библиотеки документов SharePoint в файл CSV с помощью powershell.Я получаю данные правильно на файл CSv.Но один столбец, то есть «Описание», содержит больше текстовых данных. Так что при запуске сценария данные поступают в другие строки (а не в одну строку).Для справки написал ниже скрипт, а ниже мой файл.

Скрипт Powershell

$web = get-spweb "Site Url"
$caseLib = $web.lists | where {$_.title -eq "Document Library"}
$query=new-object Microsoft.SharePoint.SPQuery
$query.ViewFields = ""
$query.RowLimit=500000
do
{
    $caseLibItems=$caseLib.GetItems($query)
    $query.ListItemCollectionPosition=$caseLibItems.ListItemCollectionPosition
    $listItemsTotal = $caseLibItems.Count
    $x = 0
    for($x=0;$x -lt $listItemsTotal; $x++)
    {
        $Description = $caseLibItems[$x]["DocumentSetDescription"]
        $str = ""
        if('$Description' -ne $null)
        {
            $str = $caseLibItems[$x]["LinkFilename"].ToString() + '}' + $Description
        }
        else
        {
            $str = $caseLibItems[$x]["LinkFilename"].ToString()
        }
        Write-Output $str | Out-File "Path"
        import-csv Data.csv -delimiter "}" -Header "Number", "Description" | export-csv -NoTypeInformation -Path "C:\csvfile1.csv"
    }
}
while ($query.ListItemCollectionPosition -ne $null)
Write-Host "Exiting"

Выходной файл для справки

Name Description

ABCD-123 This file imported data of system.

XYZA-231 Data migrated to next session

file need to upload on another server.

System update required.

CDFC-231 New file need to create on system

XYZA-984 system creating problem.

Source code error. update new file

HGFC-453 Maintenance updated file.

Вывод я хочу как показано ниже

Name Description

ABCD-123 This file imported data of system.

XYZA-231 Data migrated to next session.file need to upload on another server. System update required.

CDFC-231 New file need to create on system

XYZA-984 system creating problem. Source code error. update new file.

HGFC-453 Maintenance updated file.

Надеюсь, вы, ребята, понимаете мое требование.Я хочу, чтобы данные столбца описания были нужны мне только в одной строке.

Может кто-нибудь помочь мне или поправить меня в этом сценарии.

1 Ответ

0 голосов
/ 28 сентября 2018

Замените разрывы строк пробелами перед использованием $ Description.

$web = get-spweb $siteUrl

$ caseLib = $ web.lists |где {$ _. title -eq $ listTitle}

$ query = new-object Microsoft.SharePoint.SPQuery

$ query.ViewFields = ""

$ query.RowLimit = 500000

Запись-вывод "Заголовок} Описание" |Out-File "temp.csv"

do

{

$caseLibItems=$caseLib.GetItems($query)

$query.ListItemCollectionPosition=$caseLibItems.ListItemCollectionPosition

$listItemsTotal = $caseLibItems.Count

$x = 0

for($x=0;$x -lt $listItemsTotal; $x++)

{

    $Description = $caseLibItems[$x]["DocumentSetDescription"]

    $str = ""
    if('$Description' -ne $null)
    {
        $Description = $Description -replace "`n"," " -replace "`r"," "
        $str = $caseLibItems[$x]["LinkFilename"].ToString() + '}' + $Description
    }
    else
    {
        $str = $caseLibItems[$x]["LinkFilename"].ToString()
    }
    Write-Output $str | Out-File -Append "temp.csv" 
}

} while ($ query.ListItemCollectionPosition -ne $ null)

import-csv temp.csv -delimiter "}" |export-csv -NoTypeInformation -Path "result.csv"

Write-Host "Exiting"

Ответ, предоставленный Пьеро.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...