2014-09-29 60 views
7

我有幾個20+ MB的Excel文件,並且他們需要在業務開始前每星期刷新一次(星期一上午8點)。
這些文件包含一個數據表,數據來自SQL Server視圖的外部連接(ODC文件)。
它們還有一個數據透視表,在數據表刷新後也需要刷新。

我正試圖找到一個解決方案(Windows PowerShell)來自動刷新數據和數據透視表,而無需觸摸文件。 「打開時刷新」和其他Excel選項不可行,因爲刷新所有連接最多需要20分鐘。

我也不想刷新所有圖紙,因爲該文件具有圖表的自定義着色功能,「刷新」會將其重置爲Excel默認值,這種情況不會發生。
自動刷新Excel ODC連接和樞紐而無需打開文件PowerShell

我試過這個,但它似乎不適用於ODC連接?至少,它沒有做任何事情:

的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

+0

不知道你有什麼版本的Office,但也許'BackroundRefresh'是關閉該連接。看看[這裏](http://office.microsoft.com/en-ca/excel-help/refresh-an-external-data-connection-HA102840049.aspx#_Run_a_query)如何設置它。僅當「BackgroundQuery屬性設置爲True」按照[MSDN](http://msdn.microsoft.com/zh-cn/library/office/ff838648(v = office.15).aspx)刷新時才刷新'.RefreshAll'方法) – Matt 2014-09-29 12:25:09

+0

嗨馬特,每當用戶打開文件時,後臺刷新仍會刷新,並且必須等待20多分鐘才能獲取新數據。我在Win7上使用Excel 2010。用這個信息更新了原來的問題,謝謝指出。 – KathyBlue 2014-09-29 15:17:00

+0

我會設置一個使用Windows任務計劃程序每週一早上運行.bat文件的cron作業。在.bat文件中,我會傳入一個參數標識符,說「嘿,我從一個cron作業運行」,然後在ThisWorkbook Workbooks.Open函數中,我將檢查參數並運行所需的刷新並關閉根據需要擅長本書。下面的鏈接(來自回來的機器)談論使用CLI打開Excel並傳遞參數http://www.mrexcel.com/archive/VBA/15657.html – Michael 2014-11-05 06:02:09

回答

1

可能在this question的回答可以幫助。 perl腳本也可用作預編譯的exe文件。

+0

是的,我希望我會擁有SSIS!這會讓生活更輕鬆! – KathyBlue 2014-11-26 10:43:19