看一看:
这些链接有更多详细信息,但我已经包含了页面中的一些文本(以防万一链接失效)
http://social.msdn.microsoft.com/Forums/en-US/sqlintegrationservices/thread/97144bb2-9bb9-4cb8-b069-45c29690dfeb http://social.msdn.microsoft.com/Forums/en-US/sqlintegrationservices/thread/97144bb2-9bb9-4cb8-b069-45c29690dfeb
Q:
当我们通过 SSIS 将文本文件加载到 SQL Server 时,我们有
提供从源和加载中跳过任意数量的前导行
数据到SQL服务器。是否有任何规定可以做同样的事情
Excel 文件。
我的源 Excel 文件在前 5 个中有一些描述
行,我想跳过它并从第 6 行开始加载数据。请
对此提出您的想法。
A:
最简单的方法是给每一行一个数字(有点像中的身份)
SQL Server),然后使用条件拆分来过滤掉所有内容
其中数字
http://social.msdn.microsoft.com/Forums/en/sqlintegrationservices/thread/947fa27e-e31f-4108-a889-18acebce9217 http://social.msdn.microsoft.com/Forums/en/sqlintegrationservices/thread/947fa27e-e31f-4108-a889-18acebce9217
Q:
-
例如,在将数据从 Excel 导入到 DB 表期间是否可以跳过前 6 行?
-
还可以将 Excel 数据按带标题的部分进行划分。例如,是否可以跳过每 12 行?
A:
-
是的你可以。实际上,如果您知道将从 Excel 文件导入的数字列,则可以非常轻松地完成此操作。在
您的数据流任务,您需要设置“OpenRowset”自定义
Excel 连接的属性(右键单击您的 Excel 连接 >
特性;在“属性”窗口中,在“自定义”下查找“OpenRowset”
特性)。忽略 Sheet1 中的前 5 行并导入列
A-M,您将为 OpenRowset 输入以下值:Sheet1$A6:M
(注意,我没有指定 M 列的行号。您可以输入
行号(如果您愿意),但就我而言,行数可能会有所不同
从一次迭代到下一次迭代)
-
再说一遍,是的,你可以。您可以使用条件拆分导入数据。您可以配置条件分割来查找其中的内容
将每一行唯一标识为标题行;跳过行
与此“标题逻辑”匹配。另一种选择是导入所有
行,然后使用 SQL 脚本删除标题行
数据库...就像一个游标,每隔 12 行删除一次。或者你可以
添加种子/增量为 1/1 的身份字段,然后删除所有
行号完全除以 12 的行。类似
那...
http://social.msdn.microsoft.com/Forums/en-US/sqlintegrationservices/thread/847c4b9e-b2d7-4cdf-a193-e4ce14986ee2 http://social.msdn.microsoft.com/Forums/en-US/sqlintegrationservices/thread/847c4b9e-b2d7-4cdf-a193-e4ce14986ee2
Q:
我有一个 SSIS 包,它从包含数据的 Excel 文件导入
从第 7 行开始。
与 csv 文件的相同操作不同(“要跳过的标题行”
连接管理器编辑器),我似乎找不到一种方法来忽略
Excel 文件连接的前 6 行。
我猜答案可能在数据流之一中
变换对象,但我对它们不是很熟悉。
A:
问题 登录投票 1 登录投票 rbhro,其实有
前 5 行中的 2 个字段包含一些我认为被阻止的数据
导入器完全忽略这些行。
无论如何,我确实找到了解决我的问题的方法。
在我的 Excel 源对象中,我使用“SQL 命令”作为“数据访问”
模式”(当您双击 Excel 源对象时,它会出现在下拉菜单中)。
从那里我可以构建一个查询(“构建查询”按钮)
只抓取我需要的记录。像这样:选择F4,
F5、F6 FROM [Spreadsheet$] WHERE (F4 不为空) AND (F4
'标题字段名称')
注意:我最初尝试使用 ISNUMERIC 而不是 'IS NOT NULL',但是
由于某种原因不支持。
在我的特定情况下,我只对 F4 不感兴趣的行感兴趣
NULL(幸运的是 F4 的前 5 个中不包含任何垃圾
行)。我可以用第二个 WHERE 跳过整个标题行(第 6 行)
条款。
这样就完美地清理了我的数据源。我现在需要做的就是
在源和目标之间添加一个数据转换对象
(电子表格中的所有内容都需要从 unicode 转换),
它起作用了。