Excel 目标将数据加载到 Microsoft Excel 工作簿中的工作表或范围中。
访问模式
Excel 目标为数据加载提供了三种数据访问模式:
表或视图。
变量中指定的表或视图。
SQL 语句的结果。 查询可以是参数化查询。
重要
在 Excel 中,工作表或区域等效于表格或视图。 Excel 源和目标编辑器中可用表格的列表仅显示现有工作表(通过附加到工作表名称的 $ 符号来识别,如 Sheet1$)和命名区域(通过无 $ 符号来识别,如 MyRange)。
使用注意事项
Excel 连接管理器使用 Microsoft OLE DB Provider for Jet 4.0 及其支持的 Excel ISAM(索引顺序访问方法)驱动程序来连接和读取和写入 Excel 数据源的数据。
许多现有Microsoft知识库文章都记录了此提供程序和驱动程序的行为,尽管这些文章并不特定于 Integration Services 或其前置数据转换服务,但你可能想要了解可能导致意外结果的某些行为。 有关 Excel 驱动程序的使用和行为的一般信息,请参阅 HOWTO:将 ADO 与 Visual Basic 或 VBA 中的 Excel 数据配合使用。
将数据保存到 Excel 目标时,Excel 驱动程序附带的 Jet 提供程序的以下行为可能会导致意外结果。
保存文本数据。 当 Excel 驱动程序将文本数据值保存到 Excel 目标时,驱动程序将在每个单元格中的文本前面加上单引号字符('),以确保将保存的值解释为文本值。 如果你有或开发读取或处理保存的数据的其他应用程序,则可能需要为每个文本值前面的单引号字符包括特殊处理。
有关如何避免将单引号包括在内的信息,请参阅位于 msdn.com 上的这篇博客文章,标题为在 SSIS 包中使用 Excel 目标数据流组件时,将数据转换为 Excel 时,单引号被追加到所有字符串。
保存备忘录数据。 若要将大于 255 个字符的字符串成功地保存到 Excel 列中,驱动程序必须将该目标列的数据类型识别为 memo ,而不是 string。 如果目标表已包含数据行,则驱动程序采样的前几行必须至少包含备注列中超过 255 个字符的值的一个实例。 如果在包设计期间或运行时创建了目标表,则 CREATE TABLE 语句必须使用 LONGTEXT(或其同义词之一)作为备注列的数据类型。
数据类型。 Excel 驱动程序只识别有限的一组数据类型。 例如,所有数值列均解释为双精度 (DT_R8),并且所有字符串列(除了 memo 列)均解释为 255 个字符的 Unicode 字符串 (DT_WSTR)。 Integration Services 按如下所示映射 Excel 数据类型:
数值双精度浮点数(DT_R8)
货币(DT_CY)
布尔值 (DT_BOOL)
日期/时间
datetime
(DT_DATE)字符串 Unicode 字符串,长度 255 (DT_WSTR)
备注 Unicode 文本流(DT_NTEXT)
数据类型和长度转换。 Integration Services 不会隐式转换数据类型。 因此,在将 Excel 数据加载到非 Excel 目标之前,可能需要使用派生列或数据转换转换显式转换 Excel 数据,或者在将数据加载到 Excel 目标之前转换非 Excel 数据。 在这种情况下,使用导入和导出向导创建初始包可能很有用,该向导会为你配置必要的转换。 可能需要转换的一些示例包括:
Unicode Excel 字符串列与具有特定代码页的非 Unicode 字符串列之间的转换。
在 255 个字符的 Excel 字符串列和不同长度的字符串列之间转换。
双精度 Excel 数值列与其他类型的数值列之间的转换。
Excel 目标位置的配置
Excel 目标使用 Excel 连接管理器连接到数据源,而连接管理器指定要使用的工作簿文件。 有关详细信息,请参阅 Excel Connection Manager。
Excel 目标具有一个常规输入和一个错误输出。
可以通过 SSIS 设计器或以编程方式来设置属性。
有关可在 Excel 目标编辑器 对话框中设置的属性的详细信息,请单击以下主题之一:
“高级编辑器” 对话框反映了所有能以编程方式设置的属性。 有关可以在 “高级编辑器” 对话框中或以编程方式设置的属性的详细信息,请单击下列主题之一:
有关如何设置属性的详细信息,请参阅 设置数据流组件的属性。
相关任务
另请参阅
Excel 源
Integration Services (SSIS) 变量
数据流
使用脚本任务处理 Excel 文件