PowerShell读取数组中的Excel单元格并创建xml doument?

时间:2017-12-13 13:11:12

标签: arrays xml excel powershell

我使用一个数组读取Excel内容,该内容应该用于创建一个xml文件,但是将数组值分配给write xml语句会有麻烦。 数组代码:

grid_result.best_estimator_.model.model.history.history

数组内容示例:

 # Parse Excel columns A and B and store it in array "$headerInit"   
 for ($j=1; $j -le $rowMax-1; $j++)
 {
    $Obj =  New-Object Psobject -Property @{
        Value = $ws.Cells.Item($j,2).text
        Header = $ws.Cells.Item($j,1).text
        No = $j
    }

    $DataArray.add($obj) # Visualize the array content
 }

    $DataArray | Out-Gridview

此处创建xml文档的代码摘录(值“ 1234 ”和“ 0x3030 ”是手动插入,但应从数组$ DataArray中分配):

No   Header   Value
...
12   Address   1234,0x3030
...

如何在create xml语句中的数组$ DataArray,Header“Address”中分配2个值除以逗号“1234,0x3030”?任何帮助表示赞赏 - 谢谢。

2 个答案:

答案 0 :(得分:0)

与此同时,我已经解决了以逗号分隔的2个值的问题。 解决方案是:

$a,$b = $DataArray[12].Value.split(',')

有没有简单的方法可以将值直接分配给write xml语句而不需要额外的变量?

答案 1 :(得分:0)

正如您从我的建议中找到的那样,您可以使用$addressLeft,$addressRight = $DataArray[12].Value.Split(',') 分隔您想要的两个值:

Split

您还可以直接引用拆分的单独部分,因为$DataArray[12].Value.split(',')[0] $DataArray[12].Value.split(',')[1] 创建了一个数组,您可以使用索引号来访问每个元素:

$DataArray

另一种选择是在构建$Obj = New-Object Psobject -Property @{ Value = $ws.Cells.Item($j,2).text addressLeft = $ws.Cells.Item($j,2).text.Split(',')[0] addressRight = $ws.Cells.Item($j,2).text.Split(',')[1] Header = $ws.Cells.Item($j,1).text No = $j } 时将值拆分为两个属性:

Value

我已将原始{{1}}属性保留在其中,但如果您只想要拆分值,则可以将其删除。