我有一个电子表格,列出了多列中的数据。我正在使用Excel.Application
使用COM接口来阅读电子表格。
其中一列(名为Tags)中包含JSON(键/值对)条目,例如:
第1行:{"Environment":"Test","displayName":"TestServer"}
第2行:{"Environment":"Dev","displayName":"TestServer2"}
我想将这些值放入它们自己的键列中,因此会出现一个名为“Environment”的列,其中第1行为“Test”,第2行为“Dev”,第2行为“DisplayName”,其中包含“TestServer”第1行和第2行中的Testserver2,依此类推,包含所有其他行。
是否可以遍历所有行并使用PowerShell将值放入其“key”列?
这是我现有的代码:
$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