- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
按照 MSSQLTips 博客文章中的说明,我设置了带有 Foreach 循环的包,以循环遍历工作簿中的所有工作表并将数据导入表中。
循环正在查找正确的工作表 ( '11-18$'
),然后是具有更长名称的同一工作表 ( '11-18$'_xlnm#_FilterDatabase
)。额外的工作表导致 data duplication
和错误消息,例如 "Derived Column.Outputs[Derived Column Output].Columns[SourceSheet]" specifies failure on truncation
.
Variable
- Variable is
Name:'Sheet Name'
,Scope:'Import_AXExtractAgristatsInventory'
(package name),Date type:'String'
,Value:'11-18$'
Foreach Loop Editor
Collection Enumerator is
Foreach ADO.NET Schema Rowset Enumerator
Connection Provider is
.Net Providers for OleDb\Microsoft Office 12.0 Access Database Engine OLE DB Provider
Connection File is a path to
\\filepath\file.XLSX
Connection Advanced Extended Property is
Excel 12.0
Connection Variable Mapping is
Variable:='User:SheetName'
,Index:='2'
Connection string is
Data Source=C:\filepath\file.xlsx;Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;
Foreach ADO.NET Schema Rowset Enumerator
和 Set Restrictions
限制
Set Restrictions
选项可以使用
!=*_FilterDatabase*
之类的表达式来解决问题(排除幻像表) ,但根据 flylib 在线的电子书摘录,通配符不是一种选择......
The ADO.NET Schema Rowset Enumerator provides a way to enumerate the schema for a data source. For example, you can enumerate the tables in a database, catalogs on a server, or columns for a table. For each schema, you can filter the results in a number of ways. Figure 13.13 shows the Foreach ADO.NET Schema Rowset Enumerator Editor with the Catalogs schema selected.
There is no way to specify a wildcard for restrictions.
Reference: Microsoft SQL Server 2005 Integration Services: Stock Foreach Enumerators
- Figure 13.13. The Foreach ADO.NET Schema Rowset Enumerator provides a way to enumerate database schema.
- Figure 13.14 shows the Tables Schema Restrictions dialog box for the Tables schema.
Script Task
,
Break Point
, 和
Watch Window
显示该事件循环值--
Looping through resultset with foreach loop .
最佳答案
我已经解决了这个要求,我很震惊它原来是相当简单的。我很高兴在这里与您分享。
MSSQLTips blog post 的所有配置仍在使用中我在原始问题中使用 Foreach ADO.NET Schema Rowset Enumerator
引用配置。我添加了一点逻辑......
步骤:跳过工作表名称的逻辑
- Variable (boolean) - FINDSTRING
- Setup a variable called
varIsInvalidSheet_DisableTask
and set expression toFINDSTRING(@[User::varSheetName] ,"FilterDatabase",1 ) > 0
- FINDSTRING (SSIS Expression): Microsoft Docs/ SSIS/ Expressions/
- Data Flow Task (Properties> Expression> Disable)
- We want to stop the Data Flow Task when it is an invalid sheet. To do so...
- Left Click the Data Flow task, go to the Properties pane, in the Expressions section choose the elipse icon ('...') and choose '
Disable
' property and for the expression simply add the variable created in prior step '@[User::varIsInvalidSheet_DisableTask]
'- Run debugger to verify the settings take effect
- All sheets are found but the phantom sheets have a Disable TRUE property, and the task is ignored.
关于sql-server - SSIS Foreach 循环 - Excel 表 - 'xlnm#_FilterDatabase'(幻影/幽灵表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52744701/
当我尝试在同一个文件上第二次运行 Powershell 脚本时,出现“名称冲突”对话框。我知道这个错误与我自动过滤文件有关。如果我从不使用 autofiter,则该对话框将不会显示。我究竟做错了什么?
我想创建一个快速脚本,它从标准化表格(word docs/docxs)中提取数据并将它们传输到 Excel 表格中,并附上一张用于计算的表格。 一切都很好,除了一个异常(exception): 我希望
我有一个包含多个工作表的 excel,我想导入它 代码相当简单和基本,应该可以工作 但我的工作表名称在调试器中不断返回为“_xlnm#_FilterDatabase” 是我概率的根源 这里是代码的相关
按照 MSSQLTips 博客文章中的说明,我设置了带有 Foreach 循环的包,以循环遍历工作簿中的所有工作表并将数据导入表中。 循环正在查找正确的工作表 ( '11-18$' ),然后是具有更长
我是一名优秀的程序员,十分优秀!