close

在前一篇 PART I 中,已經說明了如何使用 SSRS 的 Web Service 來產生 Excel,接下來就是把產生的 Excel 檔案加密,在執行加密檔案之前,需要做個動作的確認,如果你的開發環境或者是執行 SSIS 的環境上是否有安裝 Excel 程式,如果有可以略過下面的步驟 1 ,如果沒有,那就只好安裝 Office Excel 或者是安裝 Office 2007 Primary Interop Assemblies (PIAs)。

1. 首先至 MS 官方網站下載並安裝 2007 Microsoft Office System Update: Redistributable Primary Interop Assemblies ,安裝完成後即可使用 Microsoft.Office.Interop.Excel.dll

2. 跟 PART I 一樣,我們需要使用一個 Script Tasks,此次我們使用 VB.NET來撰寫,ScriptLanguage 請選擇 Microsoft Visual Basic 2008,並進入 ”編輯指令碼”。

3. 加入參考,請選擇 Microsoft.Office.Interop.Excel 版本請任選一個。

image

4. 加入 Office 和 Excel 的命名空間

Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Excel

5. 最後加入主要的程式碼片段

    Public Sub Main()

        Dim AppExcel As Excel.Application = New Excel.Application
        AppExcel.Visible = False

        Dim objWorkbook = AppExcel.Workbooks.Open(Dts.Variables("FileName").Value)

        objWorkbook.Password = Dts.Variables("Password").Value
        objWorkbook.Save()
        AppExcel.Quit()

        Dts.TaskResult = ScriptResults.Success
    End Sub

6. 由於在最後的 E-mail Task 有可能會發生檔案被鎖住的問題,之此在發送 Mail 之前,多加了延遲的功能,延遲的指令碼為:

Threading.Thread.Sleep(2000)

arrow
arrow
    全站熱搜

    王圓外 發表在 痞客邦 留言(2) 人氣()