打开加密excel文件的脚本,其动态文件名以“mmddyyyy”结尾

问题描述 投票:0回答:2

嗨,我需要一个我的SSIS包的脚本,它将打开我的加密excel文件,其动态文件名以“mmddyyyy”结尾。我有一个PowerShell脚本,它将使用文件名打开并重置密码,但我不知道如何在那里使用动态文件名。此外,我想我更喜欢一个vb脚本,它将打开文件并删除密码(或者可能不会在我打开数据时提取数据?)因为我可能会将其设置为SQL工作来提取并每天发送到SQL。

以下是精简代码的示例:

objExcel = new-object -comobject excel.application 
$objExcel.Visible = $True 
$objExcel.DisplayAlerts = $False 
$MMDDYYYY=[DateTime]::Today.AddDays(-1).ToString("MMddyyyy")    
$objExcel.Workbooks.Open("\\files\Reporting\Census\Daily_$MMDDYYYY.xls",0,$False,‌​1,"password")
$Workbook.Password = ""
$strPath="\\\files\Reporting\Census\Daily_$MMDDYYYY.xls" 
$a.activeworkbook.SaveAs($strPath) 
$objExcel.Quit() 
$Workbook=$Null 
$objExcel=$Null 
[GC]::Collect()

Powershell还显示“fullyqualifiederrorid”:InvokeMethodOnNull错误消息。

excel powershell vbscript ssis encryption
2个回答
2
投票

您可以使用当前日期设置变量 - 1如下所示:

$MMddyyyy=[DateTime]::Today.AddDays(-1).ToString("MMddyyyy")
$objExcel.Workbooks.Open("\\files\SHC\Daily_$MMddyyyy.xls",0,$False,1,"password")

更多“Powershell-y”,使用Get-Date而不是[DateTime] :: Today对象。

$MMddyyyy=(Get-Date).AddDays(-1).ToString("MMddyyyy")
$objExcel.Workbooks.Open("\\files\SHC\Daily_$MMddyyyy.xls",0,$False,1,"password")

0
投票

我遇到了一个问题,我需要打开一个受Excel密码保护的文件。然而,即使按照这篇文章中的答案和副本(open a password protected Excel in powershell),它仍然提示我输入密码。我通过添加第6个参数WriteResPassword解决了这个问题。我的最终代码是:

$xl = New-Object -comobject Excel.Application
$xl.DisplayAlerts=$False
$wb=$xl.Workbooks.open("$myFile",3,$false,5,"$mypassword","$mypassword")

希望这可以帮助其他任何在Powershell中与密码保护文件斗争的人。

© www.soinside.com 2019 - 2024. All rights reserved.