如何从powershell打开excel工作簿进行自动化

Tho*_*sMX 2 .net excel powershell automation

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

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

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

$workbook = New-Object -TypeName Microsoft.Office.Interop.Excel.Application
Run Code Online (Sandbox Code Playgroud)

然而,这会返回错误"未找到构造函数".实际上,Microsoft.Office.Interop.Excel.Application的接口方式不是这样吗?我想知道如何在这种情况下实例化它.

The*_*ian 9

您需要将其作为ComObject打开.

$Excel = New-Object -ComObject Excel.Application
$Workbook = $Excel.Workbooks.Open($FilePath)
Run Code Online (Sandbox Code Playgroud)

在该示例中,您需要将您定义$FilePath为要尝试打开的Excel文件的完整路径.


Tho*_*sMX 9

我发现了一个很好的片段,它也在这里运行一个宏

# 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")
Run Code Online (Sandbox Code Playgroud)