Powershell脚本-将数据添加到excel

Powershell脚本-将数据添加到excel,excel,powershell,csv,Excel,Powershell,Csv,我试图修改我编写的Windows Powershell脚本,从输出csv到创建excel文件,因为我想将图像添加到电子表格中。当我向csv文件添加数据时,我会将文件中的值拉入不同的变量(这里显示为$var1、$var2和$var3…),然后使用 Write-Output "$var1 $var2 $var3..." | Out-File file.csv 我只是在变量之间进行制表,将每个变量放在不同的列中。有没有一种简单的方法可以使用ComObject在excel工作表上执行类似的操作

我试图修改我编写的Windows Powershell脚本,从输出csv到创建excel文件,因为我想将图像添加到电子表格中。当我向csv文件添加数据时,我会将文件中的值拉入不同的变量(这里显示为$var1、$var2和$var3…),然后使用

Write-Output "$var1   $var2   $var3..." | Out-File file.csv
我只是在变量之间进行制表,将每个变量放在不同的列中。有没有一种简单的方法可以使用ComObject在excel工作表上执行类似的操作?我发现的唯一一件事就是将变量分解成不同的行,如

$sh.Cells.Item($row, 1) = $var1
$sh.Cells.Item($row, 2) = $var2
$sh.Cells.Item($row, 3) = $var3
...
我有很多变量,我正在寻找一种更干净/更简单的方法来添加数据。以下是我的excel文件的设置:

$xl = New-Object -ComObject Excel.Application -Property @{
Visible = $true
DisplayAlerts = $false
}

$wb = $xl.WorkBooks.Add()
$sh = $wb.Sheets.Item('Sheet1')
我运行的是Windows 10,我有Powershell 5.0版

任何帮助都将不胜感激!
谢谢

使用数组并将其粘贴到Excel。这比单独处理每个字段要快得多。这是一个如何工作的示例:

$excel = New-Object -ComObject Excel.Application

$excel.Visible = $true
$excel.ScreenUpdating = $true

$workbook = $excel.Workbooks.Add()

$worksheet= $workbook.Worksheets.Item(1) 

# Array must type object!
$excelArray = New-Object 'object[,]' 4,5 

# Fill Array with some data
for( $row = 0; $row -lt $excelArray.GetLength(0); $row++ ) {
    for( $col = 0; $col -lt $excelArray.GetLength(1); $col++ ) {
        $excelArray[$row, $col] = '''' + $row.ToString() + '/' + $col.ToString()
    }
}

# Copy data to Excel
$range = $worksheet.Range('A1', ([char](64 + $excelArray.GetLength(1))).ToString() + $excelArray.GetLength(0).ToString() )
$range.Value2 = $excelArray

我把变量放在哪里?现在我已经设置好了,所以我重新使用了每一行的变量名,比如
foreach($line in Get Content success.txt){$var1=data$var2=data$var3=data Write Output“$line$var1$var2$var3”
您必须将值放入数组!foreach($line…){$excelArray[row,col]=data$excelArray[row,col+1]=数据。。。。。。