自动刷新Excel ODC连接和枢纽而无需打开文件PowerShell

我有几个20 MB以上的Excel文件,他们需要在开始营业之前(周一上午8点)每周更新一次。
这些文件包含一个数据表,数据通过外部连接(ODC文件),从SQL Server视图。
它们也有一个数据透视表,在数据表刷新后也需要刷新。

我试图find一个解决scheme(Windows PowerShell)来自动刷新数据和数据透视表,而不需要触摸文件。 “打开时刷新”和其他Excel选项不可行,因为刷新所有连接需要长达20分钟的时间。

我也不想刷新所有图纸,因为文件具有图表的自定义颜色,“刷新”将其重置为Excel默认值,这是不可能发生的。

我试过这个,但似乎没有与ODC连接工作? 至less,它没有做任何事情。

Windows PowerShell

$ExcelApp = new-object -ComObject Excel.Application $ExcelApp.Visible = $false $ExcelApp.DisplayAlerts = $false $Workbook = $ExcelApp.Workbooks.Open("c:\test\ref_test.xlsx", 3, $false, 5, $null, $null, $true) Start-Sleep -s 30 $Workbook.RefreshAll() $Workbook|Get-Member *Save* $Workbook.Save() $ExcelApp.Quit() 

有任何想法吗?

Office版本:2010,在Windows 7上

可能在这个问题上的答案可以帮助。 perl脚本也可用作预编译的exe文件。

我将通过使用Excel VBA来处理此问题,并将您的Excel文件创build为.xlsm。

然后更新文件W / Excel VBA命令和function刷新您的odbc连接,然后保存为一个新的文件分发。

http://www.vbforums.com/showthread.php?675977-Auto-Open-Refresh-Pivots-Save-Close-Excel-files-using-VB