打开密码保护的Excel文件,使用powershell单行命令

wlsrxk51  于 2023-04-06  发布在  Shell
关注(0)|答案(2)|浏览(239)

我试图使用CMD打开一个受密码保护的Excel文件,我认为PowerShell是唯一的选择。
我尝试了下面的方法,它可以打开excel文档,但似乎不能正确传递密码。
如果有人能让我知道我做错了什么,我将不胜感激。

powershell $path="C:\Path\To\File\Test.xlsx" ; $password="12345" ; $excel = New-Object -ComObject Excel.Application ; $workbook = $excel.Workbooks.Open($path,$false,$false,5,$password) ; $excel.Visible = $true
nnsrf1az

nnsrf1az1#

为什么要使用cmd而不是直接在PowerShell中使用?
Open()方法的第四个参数称为Format,它确定文件的分隔符。
由于您打开的不是文本分隔文件,而是xlsx文件,因此必须省略该参数。
为了提高可读性,下面的代码分成几行:

$path          = "C:\Path\To\File\Test.xlsx"
$password      = "12345"
$excel         = New-Object -ComObject Excel.Application
$excel.Visible = $true

# note that for any variant parameter you wish to omit, you use [type]::Missing
$workbook = $excel.Workbooks.Open($path, $false, $false, [type]::Missing, $password)

docs:* “如果Microsoft Excel打开文本文件,则此参数指定分隔符字符。如果省略此参数,则使用当前分隔符。"*

5n0oy7gb

5n0oy7gb2#

最后,我从命令行得到了这个:

powershell -Command "$Excel = New-Object -ComObject Excel.Application;$Excel.Visible = $true;$Workbook = $Excel.Workbooks.Open('C:\Path\To\File\Test.xlsx',0,$false,5,'12345')"

相关问题