通过使用SSIS将数据导出到excel

时间:2018-07-11 15:45:17

标签: ssis

我正在尝试通过使用SSIS包将数据导出到excel。

我创建了数据流任务,然后选择excel目标作为保存数据。然后尝试在excel连接管理器上工作,我遇到了将数据导出到目标文件夹excel文件的工作表1的问题。 我必须使用Excel Connection编辑器创建一个表,然后将其将数据加载到目标excel文件中的新创建的工作表中。我不想在excel文件中有两张纸,因为一张纸是导出的数据,另一张纸是空的,只包含标题。

尝试将数据导出到工作表1时出现以下错误

  

[Excel目标[12]]错误:SSIS错误代码DTS_E_OLEDBERROR。一个   发生OLE DB错误。错误代码:0x80040E21。 OLE DB记录是   可用。来源:“ Microsoft JET数据库引擎”结果:   0x80040E21说明:“生成了多步OLE DB操作   错误。检查每个OLE DB状态值(如果有)。没有工作   完成。”

     

[Excel目标[12]]错误:设置   绑定“列表”列。绑定状态为“ DT_NTEXT”。

     

[Excel目标[12]]错误:无法创建OLE DB访问器。   验证列元数据是否有效。

     

[SSIS.Pipeline]错误:Excel目标在预执行阶段失败   并返回错误代码0xC0202025。

但是当我将数据导出到新创建的工作表“ Excel Destination”时,它工作得很好。

请查看以下屏幕截图。

Excel Destination editor screenshot

2 个答案:

答案 0 :(得分:0)

必须使用Excel Connection Manager设置Excel目标。 连接管理器需要一个Excel路径(是否存在)

一旦Excel文件存在,您就可以打开它并删除不需要的工作表。
因此,现在在工作表的excel目标名称中,您只有所需的工作表。

选择目标工作表后,您可以在“映射”标签中调整列

您应该考虑使用真实的excel文件作为目标文件,以使sis中的所有元数据都是最新的。否则,您可能必须使用高级编辑器。

查看文件的Excel连接版本。有时2010-2017(xlsx)元数据不同步。 如果可以解决您的问题,请使用excel 97目的地

答案 1 :(得分:0)

在数据转换中,列的绑定类型应为[DT_WSTR]。更新此类型转换后,它开始导出到excel文件的第一页。

但是当在Excel中包含两张图纸时,不确定[DT_NTEXT]类型时它是如何导出的。