Dav*_*ein 6 excel ssis sql-server-2008
我需要导入如下所示的表格:
March Orders
***Empty Row
Week Order # Date Cust #
3.1 271356 3/3/10 010572
3.1 280353 3/5/10 022114
3.1 290822 3/5/10 010275
3.1 291436 3/2/10 010155
3.1 291627 3/5/10 011840
Run Code Online (Sandbox Code Playgroud)
列标题实际上是第3行.我可以使用Excel Sourch导入它们,但我不知道如何指定信息从第3行开始.
我用Google搜索了问题,但空洞了.
KM.*_*KM. 10
看一看:
链接有更多的细节,但我已经从页面中包含了一些文本(以防链接失效)
问:
当我们通过SSIS将文本文件加载到SQL Server时,我们可以从源中跳过任意数量的前导行并将数据加载到SQL Server.是否有任何规定对Excel文件执行相同操作.
我的源Excel文件在前5行中有一些描述,我想跳过它并从第6行开始加载数据.请提供您的想法.
A:
最简单的方法是给每一行一个数字(有点像SQL Server中的标识),然后使用条件分割来过滤掉数字<= 5的所有内容
问:
从Excel到DB表导入数据期间是否可以跳过前6行?
Excel数据也除以带标题的部分.例如,是否可以跳过每12行?
A:
是的你可以.实际上,如果您知道将从Excel文件导入的数字列,则可以非常轻松地执行此操作.在"数据流"任务中,您需要设置Excel连接的"OpenRowset"自定义属性(右键单击Excel连接>"属性";在"属性"窗口中,在"自定义属性"下查找"OpenRowset").要忽略Sheet1中的前5行,并导入列AM,您应为OpenRowset输入以下值:Sheet1 $ A6:M(注意,我没有为列M指定行号.如果您输入行号,则可以输入行号喜欢,但在我的情况下,行数可以从一次迭代到下一次迭代不同)
再见,是的你可以.您可以使用条件拆分导入数据.您将配置条件拆分以在每一行中查找唯一标识为标题行的内容; 跳过与此"标题逻辑"匹配的行.另一种选择是导入所有行,然后使用数据库中的SQL脚本删除标题行...就像删除每第12行的游标一样.或者你可以添加种子/增量为1/1的标识字段,然后删除行数完全除以12的所有行.这样的东西......
问:
我有一个SSIS包,从Excel文件导入包含从第7行开始的数据.
与使用csv文件的相同操作(连接管理器编辑器中的"Header Rows to Skip")不同,我似乎无法找到忽略Excel文件连接的前6行的方法.
我猜测答案可能在其中一个数据流转换对象中,但我对它们并不是很熟悉.
A:
问题登录进行投票1登录以投票rbhro,实际上在上面5行中有2个字段,其中包含一些我认为阻止导入器完全忽略这些行的数据.
无论如何,我确实找到了解决问题的方法.
在我的Excel源对象中,我使用"SQL Command"作为"数据访问模式"(当您双击Excel Source对象时它是下拉列表).从那里我能够构建一个查询('构建查询'按钮),只获取我需要的记录.像这样:SELECT F4,F5,F6 FROM [Spreadsheet $] WHERE(F4 IS NOT NULL)AND(F4 <>'TheHeaderFieldName')
注意:我最初尝试使用ISNUMERIC而不是"IS NOT NULL",但由于某种原因不支持.
在我的特定情况下,我只对F4不为NULL的行感兴趣(幸运的是F4在前5行中没有包含任何垃圾).我可以使用第二个WHERE子句跳过整个标题行(第6行).
这样就可以完美地清理我的数据源.我现在需要做的就是在源和目标之间添加一个数据转换对象(所有需要从电子表格中的unicode转换的对象),并且它有效.