Excel 目标

更新日期: 2007 年 9 月 15 日

Excel 目标将数据加载到 Microsoft Excel 工作簿中的工作表或范围中。

ms137643.note(zh-cn,SQL.90).gif注意:
在 64 位计算机上,必须以 32 位模式运行连接到 Microsoft Excel 数据源的包。 连接至 Excel 数据源的 Microsoft Jet OLE DB 访问接口只有 32 位版本。
ms137643.note(zh-cn,SQL.90).gif注意:
若要将数据加载到使用 Microsoft Office Excel 2007 的数据源,请使用 OLE DB 目标。 使用 Excel 目标无法连接到 Excel 2007 数据源。 有关详细信息,请参阅 Excel 连接管理器

Excel 目标为数据加载提供了三种数据访问模式:

  • 表或视图。
  • 变量中指定的表或视图。
  • SQL 语句的运行结果。 查询可以是参数化查询。
ms137643.note(zh-cn,SQL.90).gif重要提示:
在 Excel 中,工作表或范围等同于表或视图。 Excel 源和目标编辑器中可用表的列表仅显示现有的工作表(以追加到电子表格名称之后的 $ 符号为标识,如 Sheet1$)和指定范围(以 $ 符号的缺失为标识,如 MyRange)。

Excel 目标使用 Excel 连接管理器连接到数据源,而连接管理器指定要使用的工作簿文件。 有关详细信息,请参阅 Excel 连接管理器

Excel 目标具有一个常规输入和一个错误输出。

使用注意事项

Excel 连接管理器使用 Microsoft OLE DB Provider for Jet 4.0 及其支持的 Excel ISAM(索引顺序存取方法)驱动程序来连接 Excel 数据源,并在 Excel 数据源中进行数据读写操作。

许多现有 Microsoft 知识库文章都记录了该访问接口和驱动程序的行为。虽然这些文章并非专门介绍 Integration Services 或其前身 Data Transformation Services,但您仍可了解到一些可能导致意外结果的行为。 有关 Excel 驱动程序的使用及行为的一般信息,请参阅如何将 ADO 与来自 Visual Basic 或 VBA 的 Excel 数据一起使用

在将数据保存到 Excel 目标时,Excel 驱动程序所附带的 Jet 访问接口的以下行为可以导致意外的结果。

  • 保存文本数据。 Excel 驱动程序将文本数据值保存到 Excel 目标时,驱动程序将在每个单元内的文本之前添加单引号字符 (') 以确保所保存的值将被解释为文本值。 如果拥有或要开发将读取或处理所保存的数据的其他应用程序,则可能需要包括特殊的措施,以处理位于每个文本值前面的单引号字符。
  • 保存备注 (ntext) 数据。 若要将长于 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)
    • 日期/时间 日期 (DT_DATE)
    • 字符串 – Unicode 字符串,长度为 255 (DT_WSTR)
    • Memo – Unicode 文本流 (DT_NTEXT)
  • 数据类型和长度转换。Integration Services 不隐式转换数据类型。 因此,在将 Excel 数据加载到非 Excel 目标中之前,可能需要使用“派生列”或“数据转换”转换机制显式地转换它,或者在将其加载到 Excel 目标中之前将其转换为非 Excel 数据。 这种情况下,可能需要通过使用导入和导出向导(它将自动配置所需转换)来创建初始包。 下面是一些可能必需的转换的示例:
    • Unicode Excel 字符串列与具有特定代码页的非 Unicode 字符串列之间的转换。
    • 在 255 个字符的 Excel 字符串列和不同长度的字符串列之间转换。
    • 双精度 Excel 数值列与其他类型的数值列之间的转换。

配置 Excel 目标

可以通过 SSIS 设计器或以编程方式来设置属性。

有关可以在**“Excel 目标编辑器”**对话框中设置的属性的详细信息,请单击下列主题之一:

**“高级编辑器”对话框反映了所有能以编程方式设置的属性。 有关可以在“高级编辑器”**对话框中或以编程方式设置的属性的详细信息,请单击下列主题之一:

有关如何设置属性的详细信息,请单击下列主题之一:

有关循环遍历一组 Excel 文件的信息,请参阅如何循环遍历 Excel 文件和表

请参阅

任务

如何循环遍历 Excel 文件和表

概念

Excel 源
Integration Services 变量
创建包数据流
64 位计算机上的 Integration Services 注意事项

其他资源

Integration Services 目标
Working with Excel Files with the Script Task

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

发布日期 历史记录

2007 年 9 月 15 日

新增内容:
  • 添加了有关如何使用 64 位计算机运行连接至 Excel 数据源的包的说明。
  • 描述了保存备注数据的结果。

2006 年 12 月 12 日

新增内容:
  • 添加了有关使用 Excel 2007 数据源的说明。

2006 年 4 月 14 日

新增内容:
  • 添加了指向使用 Excel 的新主题的链接。

2005 年 12 月 5 日

更改的内容:
  • 展开并重新编写了“使用注意事项”部分以阐明已知问题。