将ssis包中的数据导出到Excel目标时出错

时间:2013-10-02 20:26:55

标签: excel sql-server-2008 sql-server-2008-r2 ssis

我刚刚将我的ssis软件包从桌面移动到我的服务器。软件包将数据从sqlserver导出到excel表。当我尝试运行包时,我看到以下错误。该错误发生在数据流任务的Excel目标中。

Error at Package [Connection manager "Excel Connection Manager"]: SSIS Error Code DTS_E_OLEDB_NOPROVIDER_ERROR.  The requested OLE DB provider Microsoft.ACE.OLEDB.12.0 is not registered. Error code: 0x00000000.
An OLE DB record is available.  Source: "Microsoft OLE DB Service Components"  Hresult: 0x80040154  Description: "Class not registered".

Error at Data Flow Task [Excel Destination [16]]: SSIS Error Code 


[Excel Destination [16]] Error: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.  The   AcquireConnection method call to the connection manager "Excel Connection Manager" failed with error code 0xC020  9302.  There may be error messages posted before this with more information on why the AcquireConnection method call failed.

我也做了以下更改,因为我之前有错误,包甚至都没有运行。

在数据流任务上将延迟验证设置为false。 将项目属性下的Run64bitruntime设置为true

谁能告诉我我需要做什么?

PS:我在服务器上运行软件包,并且没有安装MS excel。这会导致错误吗?

3 个答案:

答案 0 :(得分:2)

  

PS:我在服务器上运行软件包而MS excel不是   安装在上面。这会导致错误吗?

我也找到了另一个描述解决方案的线程:

HOW TO: FIX ERROR - "the 'microsoft.ace.oledb.12.0' provider is not registered on the local machine

其中不涉及安装完整版Office:

  

注意:即使是2007年,这也适用于Office 2010   办公室,不要问我为什么这样做:)。

     
      
  1. 下载并安装:http://www.microsoft.com/download/en/confirmation.aspx?id=23734

  2.   
  3. 在VS中单击添加数据源,按照向导进行操作即可享受! :)

  4.   

他们正在使用Visual Studio,但我想你应该能够运行你的SSIS包而不必“添加数据源”,因为它正在寻找现在应该注册的COM组件microsoft.ace.oledb.12.0

答案 1 :(得分:1)

我遇到过这一次并且必须将excel表保存为.csv并使用平面文件连接管理器:

http://msdn.microsoft.com/en-us/library/ms140266.aspx

答案 2 :(得分:1)

另一种方法是在SSIS项目中使用32位选项。 右键单击解决方案,然后选择属性>选择Debugging并为选项Run64Bitruntime

指定FALSE