Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SSIS导入Excel文件xls/xlsx_Excel_Ssis - Fatal编程技术网

SSIS导入Excel文件xls/xlsx

SSIS导入Excel文件xls/xlsx,excel,ssis,Excel,Ssis,我需要将信息从excel文件导入数据库。 我有一个运行ssis包的网页,它可以提取excel文件,并将数据加载到数据库中现在的问题在于,要处理的excel文件类型不同,可能是xls或XLXSSIS excel连接管理器,允许您指定要连接到xls或xlxs的excel文件类型,您不能对这两种类型使用一个连接管理器,这现在只允许用户始终将xlxs文件更改为xls,然后对其进行处理,是否有一种方法可以根据excel文件的类型动态更改连接管理器, 或者,当处理不同类型的SSIS包时,我应该只调用两个不同

我需要将信息从excel文件导入数据库。 我有一个运行ssis包的网页,它可以提取excel文件,并将数据加载到数据库中
现在的问题在于,要处理的excel文件类型不同,可能是xls或XLX

SSIS excel连接管理器,允许您指定要连接到xlsxlxs的excel文件类型,您不能对这两种类型使用一个连接管理器,这现在只允许用户始终将xlxs文件更改为xls,然后对其进行处理,是否有一种方法可以根据excel文件的类型动态更改连接管理器,
或者,当处理不同类型的SSIS包时,我应该只调用两个不同的SSIS包。

如果您已经从代码运行SSIS包,我认为这应该相对容易做到。在过去一周左右的时间里,我一直在编辑代码包,修改变量等非常容易。我知道您也可以访问连接并指定dtsConfig文件

                using (var p = app.LoadFromSqlServer(config.PackageName, config.SqlServerName, config.UserName, config.Password, null))
            {

                // changing variables in code
                Variables vars = p.Variables;
                vars["FromDate"].Value= criteria.From;
                vars["ToDate"].Value = criteria.To;
                // using a configfile in code
                p.ImportConfigurationFile(config.ConfigurationFile);
                DTSExecResult result = p.Execute();
                if (result != DTSExecResult.Success)
                {
                    throw new ApplicationException("SSIS Package did not compelte successfully.");
                }

            }

您可能有两个不同的配置文件,一个用于xlsx,另一个用于xls连接,并根据上载的excel文件扩展名使用相应的配置文件。

如果您已经在代码中运行ssis包,我认为这应该相对容易做到。在过去一周左右的时间里,我一直在编辑代码包,修改变量等非常容易。我知道您也可以访问连接并指定dtsConfig文件

                using (var p = app.LoadFromSqlServer(config.PackageName, config.SqlServerName, config.UserName, config.Password, null))
            {

                // changing variables in code
                Variables vars = p.Variables;
                vars["FromDate"].Value= criteria.From;
                vars["ToDate"].Value = criteria.To;
                // using a configfile in code
                p.ImportConfigurationFile(config.ConfigurationFile);
                DTSExecResult result = p.Execute();
                if (result != DTSExecResult.Success)
                {
                    throw new ApplicationException("SSIS Package did not compelte successfully.");
                }

            }

您可能有两个不同的配置文件,一个用于xlsx,另一个用于xls连接,并根据上载的excel文件扩展名使用相应的配置文件。

在SSIS 2008中,您可以设置到2007 excel文件(.xlsx)的连接然后使用连接管理器上的表达式将ExcelFilePath设置为变量的值。此变量的值可以是97-2003(.xls)或2007(.xlsx)类型,只要图纸名称相同,Excel源代码就可以工作


我不确定这是否与SSIS 2005中的行为相同。

在SSIS 2008中,可以设置到2007 Excel文件(.xlsx)的连接,然后使用连接管理器上的表达式将ExcelFilePath设置为变量的值。此变量的值可以是97-2003(.xls)或2007(.xlsx)类型,只要图纸名称相同,Excel源代码就可以工作

我不确定这是否与SSIS 2005中的行为相同