2012-03-20 86 views
1

我有一個從數據庫表中獲取外部數據的Excel文件。我需要自動刷新文件並通過電子郵件發送。我打算使用SSIS腳本任務來運行一些VB腳本來打開文件,刷新數據,保存並關閉(顯然不需要啓動應用程序)。然後我將使用電子郵件任務通過電子郵件發送文件。我需要的只是刷新文件並在VB或C#中完全禁用的腳本,我必須問問任何人是否有一個腳本可以放在周圍,我可以爲我的文件自定義腳本任務。 我會感激任何提示! 非常感謝, 弗拉德使用SSIS腳本任務刷新Excel

+0

所以你只需要VB腳本,將打開XLS文件,刷新它並關閉它的電子郵件目的? – Amol 2012-03-21 08:51:10

+0

僅供參考,Microsoft目前建議您不要在服務器環境中自動運行Office應用程序:http://support.microsoft.com/kb/257757可以從頭開始創建文件,然後通過電子郵件發送文件? http://stackoverflow.com/questions/151005/create-excel-xls-and-xlsx-file-from-c-sharp – Pondlife 2012-03-21 09:53:43

+0

爲什麼即使打擾SSIS?您可以將啓動宏添加到打開文件時刷新數據的excel文件中。只要將文件分發給您的受衆,並且每次打開文件時,宏都會自動刷新數據......假設他們可以訪問網絡。 – 2012-03-21 12:20:58

回答

5

希望這是你在尋找什麼

' Create an Excel instance 
    Dim oExcel 
    Set oExcel = CreateObject("Excel.Application") 

' Disable Excel UI elements 
    oExcel.Visible = True 
    oExcel.DisplayAlerts = False 
    oExcel.AskToUpdateLinks = False 
    oExcel.AlertBeforeOverwriting = False 

    Set oWorkbook = oExcel.Workbooks.Open("absolute path to your file") 
    oWorkbook.RefreshAll 
    oWorkbook.Save 

    oExcel.Quit 
    Set oWorkbook = Nothing 
    Set oExcel = Nothing 
+0

太棒了,4MO1!經過小小的調整,它的工作。謝謝! – 2012-03-21 20:50:55

+0

@ user1281185:如果這是你需要的,那麼你可以通過點擊左邊的複選標記來接受這個答案 – Amol 2012-03-22 04:07:26

+0

剛剛做過。再次感謝! – 2012-03-23 13:17:45

0

老的文章,但4M01答案已經幫了我堆。

在我的情況下,我必須打開工作簿後才能進入睡眠狀態,以確保文件正確加載。

oWorkbook = oExcel.Workbooks.Open("absolute path to your file") 
Threading.Thread.Sleep(3000) 
oWorkbook.RefreshAll 

還應注意在VS 2015組不再需要。所以只需刪除「設置」的代碼工作。