Powershell与打开的Excel进行交互

要与Powershell中的excel进行交互,通常要开始一个新的excel,如下所示:

$x = New-Object -comobject Excel.Application 

而不是我已经打开Excel的过程。 (我明白如下)

 $excelprocess = Get-Process | Where-Object {$_.name -eq "excel"} | Sort-Object -Property "Starttime" -descending | Select-Object -First 1 

有没有办法通过PS与这个特定的Excel进程进行交互?

你想使用Marshal.GetActiveObject方法,例如:

 $xl = [Runtime.InteropServices.Marshal]::GetActiveObject('Excel.Application') $xl.Quit()