下面的代码返回正常,并使用以下数据生成CSV文件:

Borrowers Name
---------------

    Conrad
    Luke
    Shaw

预期的输出:Conrad,Luke, Shaw(全部在一行中-值用逗号分隔)
$DestinationFileName = $DestinationFile
$SourceFileName = $SourceFile
$tableNum = $tableNumber
$DatabaseTable = $DatabaseTableName

$delimiter = ','
$objWord = New-Object -Com Word.Application
$objWord.Visible = $false # $false
$objDocument = $objWord.Documents.Open($SourceFileName,$false,$true)
$LETable = $objDocument.Tables.Item($tableNum)
$LETableCols = $LETable.Columns.Count
$LETableRows = $LETable.Rows.Count

$RawCSV = for($r=1; $r -le $LETableRows; $r++) {
    $content= @()
    for($c=1; $c -le $LETableCols; $c++) {
         $content += ("`"{0}`"" -f $LETable.Cell($r,$c).Range.Text -replace "(`r|`n|`t)|$([char]7)?")
    }
    $Content -join $delimiter
}
$Csv = $RawCSV | ConvertFrom-Csv
#$objDocument.Close()
$objWord.Quit()
# Stop Winword Process
$rc = [System.Runtime.Interopservices.Marshal]::ReleaseComObject($objWord)
$Csv
$Csv | Export-Csv $DestinationFileName -NoTypeInformation

最佳答案

以下代码可以解决问题:

$csv.'Borrowers Name'  -join ", "

您在这里要做的是访问所需的属性,然后使用-join将其显示在一行中。您可以在双引号中指定定界符,以便对其进行修改(根据示例,尚不清楚是否要在逗号后留空格)。

关于powershell - CSV中的多行将在一行中返回,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51878981/

10-08 22:36