要在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流程进行交互?
答案 0 :(得分:4)
您想使用Marshal.GetActiveObject方法,例如:
$xl = [Runtime.InteropServices.Marshal]::GetActiveObject('Excel.Application')
$xl.Quit()