2017-10-10 204 views
0

我開發了一個運行Excel宏的SSIS包(如果我沒有記錯的話 - VS2008,SQL Server 2008和Windows Server 2008 - 服務器退役了)。該軟件包使用SQL Server 2016和VS2015遷移到Azure。從ssis運行宏

我們現在第一次運行它一年多了,並且失敗了。用於從SSIS運行宏的原始代碼取自Run an Excel Macro from SSIS

代碼:公共無效的主要的1號線

using System; 
using System.Data; 
using System.Diagnostics; 
using System.IO; 
using System.IO.Compression; 
using System.Windows.Forms; 
using System.Runtime.InteropServices; 
using Microsoft.Office.Interop; 
using Excel = Microsoft.Office.Interop.Excel; 

public void Main() 
{ 
    Excel.Application xlApp = new Excel.Application(); 
    Excel.Workbook xlWorkBook = xlApp.Workbooks.Open("C:\\ExcelDirectory\\DATA.xlsm"); // absolute path needed 
    xlApp.Run("Formatting"); // method overloads allow you to send it parameters, etc. 
    xlWorkBook.Close(true); // first parameter is SaveChanges 
    xlApp.Quit(); 
} 

錯誤:

Additional information: Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

的Interop提及,雖然由於手動安裝從MS(EXE)不會做的工作增加。也許.dll的不好?請幫助並記住我是這方面的新手。

回答

0

問題解決!!正如其他人在其他帖子中指出的那樣,我需要安裝Office。互操作本身不會運行宏或與Office產品交互。