将数组的空元素插入Excel单元格

时间:2015-07-01 03:11:38

标签: excel-vba powershell vba excel

我有这个问题

$arr = @()
$regex = "blabla"

$arr = $body | Select-String $regex -AllMatches | %{$_.Matches} | %{$_Value}

提取的数据应如下所示:

Empty
Value 1
Value 2
Empty
Value 3

当我将其复制到Excel行时:

$row = $worksheet.usedrange.rows.count+1
$usedrange = $worksheet.usedrange
$usedrange.entirecolumn.autofit() | Out-Null

$worksheet.cells.item($row,11) = $arr[$i]

空值被第一个可用数组顺序覆盖并变为这样

Value 1
Value 2
Value 3
Empty
Empty

我怎样才能获得之前提取的原始值?

1 个答案:

答案 0 :(得分:0)

Select-String不会产生不匹配,因此您不会获得包含空字段的结果数组。你需要这样的东西来保留空的"结果":

$arr = New-Object Collections.ArrayList
$body | % { $arr += if ($_ -match $pattern) {$_} else {$null} }

请注意,$body必须是一行数组才能生效。