如何从PowerShell自动化打开Excel工作簿

我想打开一个Excel工作簿,读出数据,做其他types的操作等。我知道我必须添加一个程序集引用:

[Reflection.Assembly]::LoadFile("C:\Program Files\Microsoft Office\Office16\ADDINS\Microsoft Power Query for Excel Integrated\bin\Microsoft.Office.Interop.Excel.dll") 

然后我需要实例化一个Application对象。

 $workbook = New-Object -TypeName Microsoft.Office.Interop.Excel.Application 

然而这个返回错误“没有find构造函数”是不是顺便说一下Microsoft.Office.Interop.Excel.Application的一个接口呢? 我想知道如何在这种情况下实例化。

您需要将其作为ComObject打开。

 $Excel = New-Object -ComObject Excel.Application $Workbook = $Excel.Workbooks.Open($FilePath) 

在这个例子中,您需要将$FilePath定义$FilePath要打开的Excel文件的完整path。

我find了一个很好的代码片断,它也在这里运行一个macros

 # start Excel $excel = New-Object -comobject Excel.Application #open file $FilePath = 'C:\temp\Book1.xlsm' $workbook = $excel.Workbooks.Open($FilePath) #make it visible (just to check what is happening) $excel.Visible = $true #access the Application object and run a macro $app = $excel.Application $app.Run("Macro1")