在Excel uisng PowerShell中将数组输出到特定工作表

时间:2017-07-19 16:29:05

标签: arrays excel vba excel-vba powershell

我在PowerShell中有一个名为“$ OutArray”的数组 该阵列充满了多个电子邮件,我需要在第一列中输出到Excel中的每个单元格。该表标有“记者”。

我使用以下for循环来尝试输出数组中的每个项目:

$Excel = New-Object -ComObject Excel.Application
$ExcelWorkBook = $Excel.Workbooks.Open($excel_file_path)
$ExcelWorkSheet = $Excel.WorkSheets.Item("Reporters")
$ExcelWorkSheet.activate()

for ($i = 0; $i -lt $OutArray.Length; $i++) {
    $ExcelWorkSheet.Cells.Item($i, 1) = $OutArray[$i]
} 

顺便说一句,$ excel_file_path已经正确声明。

但是,我收到以下错误:

PowerShell Error

我能够通过以下命令在新工作簿中输出数组:

$OutArray | out-file "C:\desiredPathHere"

但我正在尝试在新工作表中附加现有工作簿。

任何提示?

谢谢大家。

1 个答案:

答案 0 :(得分:1)

我认为这个错误是由于尝试索引到Excel使用的基于单一的数组引起的,好像它是从零开始的那样:

for ($i = 0; $i -lt $OutArray.Length; $i++) {
    $ExcelWorkSheet.Cells.Item(($i + 1), 1) = $OutArray[$i]
} 

或者,为了避免加剧脆弱的Excel COMObject:

for ($i = 1; $i -le $OutArray.Length; $i++) {
    $ExcelWorkSheet.Cells.Item($i, 1) = $OutArray[$i-1]
}