Я пытаюсь использовать скрипт powershell, чтобы прочитать определенный столбец в моем файле Excel и выполнить некоторую обработку текста для данных в этом столбце.Каждая ячейка в этом столбце может / не может содержать многострочные данные.
То, что я сделал, это цикл по ячейке, и для каждой зацикленной ячейки я сохранял данные в строке здесь, а затем перебирал эту строку здесь, чтобы прочитать каждую строку в строке.многострочный текст.
Я могу прочитать все строки в ячейках, которые содержат многострочные данные, однако, когда цикл достигает ячеек с однострочными данными, он не отображает однострочные данные и выводится какпустойМне нужна помощь, чтобы определить мою проблему.Буду очень признателен, спасибо!
$Excel = New-Object -ComObject Excel.Application
$Excel.Visible = $false
$Excel.DisplayAlerts = $false
$xlsPath = "C:\Users\csjeemah\Documents\Jeevan\Powershell Scripts\sample.xlsx"
$workbook = $Excel.Workbooks.Open("C:\Users\csjeemah\Documents\Jeevan\Powershell Scripts\sample.xlsx")
$workSheet = $workbook.Sheets.Item(1)
$workSheet.activate()
$worksheet.Columns.Replace("\","/")
$maxRows = (($workSheet.UsedRange.Rows).count) - 1
$sourceCol = 2
$sourceRow = 2
for($souceRow = 1; $sourceRow -lt $maxRows; $sourceRow++){
$sourceData = $workSheet.Cells.Item($sourceRow,$sourceCol).text
$sourceArray = @"
$sourceData
"@ -split "`n" | % {$_.trim() }
$lineCounter = 1
for($src = 0; $src -le $sourceArray.count - 1 ; $src ++){
echo $sourceArray[$src] 'this is line' $lineCounter 'in cell'
$lineCounter = $lineCounter + 1
}
}
$workbook.SaveAs($xlsPath)
$workbook.close($false)
$Excel.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($Excel)
Remove-Variable Excel