繁体   English   中英

使用 Powershell 刷新 Excel 连接

[英]Refresh Excel connections using Powershell

我有以下代码可以打开电子表格,删除所有连接并“保存”一个新文件。

$a = New-Object -COM "Excel.Application"
$a.Visible = $false
$b = $a.Workbooks.Open("F:\Scripts\All Users.xlsx")

do
{
    $b.Connections.Item(1).Delete()
    $Count = $b.Connections.Count()
} until($Count -eq 0)

$b.SaveAs("F:\Scripts\Users Home Drive Search.xlsx")
$b.Close()

我想知道两件事:

  1. 如何将工作表获取到 RefreshAll 连接? 我试过 "$b.Connections.refreshall()" 但 refreshall() 不存在。
  2. 如何退出 Excel 应用程序? 我运行了“New-Object -COM“Excel.Application”| Get-Member -MemberType Methods”,但没有看到退出或退出方法。

RefreshAll()WorkBook 对象的一个方法,所以使用它来刷新外部连接:

$b.RefreshAll()

要退出 Excel 并从内存中删除使用的 COM 对象,请使用

$a.Quit()
$null = [System.Runtime.Interopservices.Marshal]::ReleaseComObject($b)
$null = [System.Runtime.Interopservices.Marshal]::ReleaseComObject($a)
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()

顺便说一句,我会使用更具描述性的变量名称,因此$excel而不是$a$workbook而不是$b以避免以后混淆。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM