【问题标题】:Output Array to Specific Worksheet in Excel uisng PowerShell使用 PowerShell 将数组输出到 Excel 中的特定工作表
【发布时间】:2017-12-25 01:19:53
【问题描述】:

我在 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 已经正确声明了。

但是,我收到以下错误:

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

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

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

有什么提示吗?

谢谢大家。

【问题讨论】:

    标签: arrays vba excel powershell


    【解决方案1】:

    我认为该错误是由于试图索引 Excel 使用的从 1 开始的数组,就好像它是从 0 开始的一样:

    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]
    } 
    

    【讨论】:

      猜你喜欢
      • 2015-05-27
      • 1970-01-01
      • 2021-08-05
      • 1970-01-01
      • 2021-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多