Sql server 在SSIS中使用动态Excel连接管理器时如何配置输入列

Sql server 在SSIS中使用动态Excel连接管理器时如何配置输入列,sql-server,excel,ssis,etl,Sql Server,Excel,Ssis,Etl,使用Visual Studio 2015 SSIS创建动态Excel连接管理器并在目录中迭代多个Excel文件后,我遇到了无法更改连接管理器中列数的问题。Excel文件的列数(或标题名称/位置)不同。为了处理这个问题,我将数据从连接管理器直接传递到脚本组件中 在切换到包连接并将表达式ExcelFilePath设置为我的For/Each循环变量之前,我尝试创建一个包含更多列的Excel连接管理器,但这似乎不起作用。在此之后,我收到了VS_NEEDSNEWMETADATA错误,并且在重建之后,收到了

使用Visual Studio 2015 SSIS创建动态Excel连接管理器并在目录中迭代多个Excel文件后,我遇到了无法更改连接管理器中列数的问题。Excel文件的列数(或标题名称/位置)不同。为了处理这个问题,我将数据从连接管理器直接传递到脚本组件中

在切换到包连接并将表达式
ExcelFilePath
设置为我的For/Each循环变量之前,我尝试创建一个包含更多列的Excel连接管理器,但这似乎不起作用。在此之后,我收到了
VS_NEEDSNEWMETADATA
错误,并且在重建之后,收到了

在数据源中找不到列“F18”

当少于18列的Excel工作表通过for/each循环时出错


如有任何建议或协助,将不胜感激。多谢各位

如果Excel文件之间的列数不同,则不能使用相同的Excel源导入它们。您总是会得到您提到的×
VS_NEEDSNEWMETADATA
异常

如果您正在处理结构相同但列顺序不同的Excel文件,请参阅下面链接中我的详细答案:

如果您可以选择将Excel文件转换为平面文件,那么有许多链接描述了如何导入具有不同结构的文件的完整过程

如果您没有这个选择,您必须考虑自动化更复杂的包创建(使用BIML或DTS包装器)

更新1 有关将Excel转换为csv的一些链接:


谢谢。我认为没有一种简单的方法可以通过SSIS将excel转换为平面?我没有在SSIS中安装VB或VC,但在命令提示符下使用vbc进行编译。我还没能用DTS包装器创建一个软件包,但我会继续尝试,因为如果我能弄明白的话,这对我来说是最好的选择。我不明白vb是怎么没有安装的,你能添加一个脚本任务吗??我还将提供一些有关将excel转换为的链接csv@DaveDD如果答案解决了问题,你也必须接受它。检查Hadi,我将在工作周内更新。谢谢。我使用的Visual Studio 2015安装是Shell(集成),因此不包括编程语言。我不确定我是否能够运行VBC来编译一个自动生成的包,但是尝试这样做会花费我太多的时间。我尝试使用.vbs脚本将Excel转换为CSV,但尝试调用.SaveAs时出错。我可以尝试使用上面链接的XLS到CSV链接方法。