使用Powershell提取json电子表格数据,然后复制到不同的列

我有一个电子表格,列出多个列中的数据。 我正在使用COM接口使用Excel.Application来读取电子表格。

其中一列(名为Tags)中包含JSON(键/值对)条目,例如:

第1行: {"Environment":"Test","displayName":"TestServer"}

第2行: {"Environment":"Dev","displayName":"TestServer2"}

我想把这些值放到它们自己的关键字段中,所以在第一行中将会有一个名为'Environment'的列,第一行中有'Test'字段,第二行中有Dev,'TestServer'字段中有'DisplayName'列,第2行中的Testserver2等与所有其他行一起。

是否有可能循环遍历所有行,并使用PowerShell将值放入其“键”列?

这是我现有的代码:

 $file = “c:\sandpit\testdata.xlsx” $sheetName = "Sheet1" $objExcel = New-Object -ComObject Excel.Application $workbook = $objExcel.Workbooks.Open($file) $sheet = $workbook.Worksheets.Item($sheetName) $objExcel.Visible=$false $rowMax = ($sheet.UsedRange.Rows).count $rowOwner,$colOwner = 1,1 $rowName,$colName = 1,2 $rowTags,$colTags = 1,3 for ($i=1; $i -le $rowMax-1; $i++) { $owner = $sheet.Cells.Item($rowOwner+$i,$colOwner).text $name = $sheet.Cells.Item($rowName+$i,$colName).text $tags = $sheet.Cells.Item($rowTags+$i,$colTags).text | ConvertFrom-Json | Select DisplayName,CreatedBy Write-Host $owner, $name, $tags } $objExcel.quit() get-process excel | stop-process