2012-03-20 21 views
1

データベーステーブルから外部データを取得するExcelファイルがあります。私はファイルを自動的にリフレッシュして電子メールで送信する必要があります。私はSSISスクリプトタスクを使用して、ファイルを開いたり、データを更新したり、保存して閉じる(アプリケーションを起動することなく)、VBスクリプトを実行するつもりです。私は電子メールタスクを使用してファイルを電子メールで送信します。私が必要とするのは、ファイルを更新し、VBまたはC#のnoobであるスクリプトです。だれかがそんなことをするスクリプトを持っているのか、私のファイルのためにカスタマイズしてスクリプトタスクで使うことができるかどうか尋ねなければなりません。 私はどんなヒントもありがとう! おかげでたくさん、 ヴラドSSISスクリプトタスクを使用してExcelを更新する

+0

だからxlsファイルを開くvbスクリプトが必要です。最新の情報に更新してメールの目的で閉じることができますか? – Amol

+0

ご参考まで、Microsoftは現在、サーバー環境でOfficeアプリケーションを自動化しないことを推奨しています。http://support.microsoft.com/kb/257757ファイルを最初から作成してから電子メールで送信できますか? http://stackoverflow.com/questions/151005/create-excel-xls-and-xlsx-file-from-c-sharp – Pondlife

+0

なぜSSISに気をつけますか?ファイルを開く際にデータを更新するスタートアップマクロをExcelファイルに追加するだけです。ファイルをオーディエンスに配布するだけで、マクロを開くと自動的にデータを更新します...彼らはネットワークにアクセスできると仮定します。 –

答えて

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!マイナーな微調整でそれはうまくいった。ありがとうございました! –

+0

@ user1281185:これが必要な場合は、左側のチェックマークをクリックして回答として受け入れることができます – Amol

+0

ちょうどいいです。再度、感謝します! –

0

古いポストを探しているものですが、4M01の答えはヒープを私を支援してきました。

私の場合は、ファイルが正しく読み込まれるように、ブックを開いた直後に眠りにつける必要がありました。 VS 2015でも

すなわち

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

注セットはもはや必要ありません。コードを動作させるために "set"を削除するだけです。

関連する問題