【发布时间】:2020-07-30 02:03:36
【问题描述】:
我有一个 PowerShell 脚本,它可以根据一组条件动态创建、更新和删除 Excel 工作簿。创建 excel 所涉及的过程之一是运行电源查询。但是,它似乎默认设置“启用后台刷新”为启用。
这会导致在运行代码的更新部分时出现问题,因为 Excel 在电源查询刷新之前打开、保存和关闭。
我这个脚本不断地创建和删除新的 Excel,所以手动关闭设置是不可行的。我能找到的唯一解决方案是添加一个睡眠功能,但是当有很多 excel 时,这会导致性能延迟。
Excel 设置:
更新代码:
$File = Get-Item("$Path\$Set\$Set-main-$ReleaseDate.xlsx")
$Excel = New-Object -ComObject excel.application
$Excel.DisplayAlerts = $False
$Excel.visible = $False
$WorkBook = $Excel.Workbooks.Open($File.FullName)
$WorkBook.RefreshAll()
$WorkBook.SaveAs($File, 51)
$WorkBook.Close($True)
$Excel.Quit()
[void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($WorkSheet)
[void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($WorkBook)
[void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($Excel)
[System.GC]::Collect()
【问题讨论】:
标签: excel powershell