我想打开一个excel工作簿并读出数据,进行其他类型的操作等我知道我必须添加一个程序集引用:
[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
然而,这将返回一个错误“A constructor was not found”难道Microsoft.Office.Interop.Excel.Application不是一个接口吗?我想知道如何在this场景中示例化它。
4条答案
按热度按时间von4xj4u1#
您需要将其作为ComObject打开。
在该示例中,您需要将
$FilePath
定义为您试图打开的Excel文件的完整路径。qyzbxkaa2#
我发现了一个很好的代码片段,它也运行一个宏here
xwbd5t1u3#
让Windows为您处理最困难的部分:
explorer.exe $filename
Simples:)
tjjdgumg4#
如果你只是将路径添加到变量
$FilePath
中,不加引号,它将自动打开:唯一的问题是,如果您没有在Excel上正确关闭该文件,那么下次运行它时,它将以
READ ONLY
的形式打开,并且您必须在任务管理器上杀死该进程。根据需要和编码,有时简单的工作效果最好。