文件夹中所有文件的SSIS行计数
我有一个文件夹,其中包含每天替换的多个Excel文件。我需要一个总行数,它可以为我提供文件夹中每个单独Excel文件的行数总和(即,如果有3个文件,每个文件有10条记录,我需要30条结果计数)。然后,我需要每天运行这个包,将单个记录添加到日志表中,该日志表将为我提供文件夹中记录的每日计数。我一直在尝试Foreach循环容器和ADO枚举器,但似乎无法找到解决方案 您可以使用行计数组件 在控制流中创建数据流任务。然后,在数据流内部,使用连接到行计数组件的Excel源组件。创建一个整数变量,双击行计数组件并将变量分配给它 如果正确配置了Excel源(使用Excel连接管理器),则所创建的变量将保存要传递的Excel文件中的行数文件夹中所有文件的SSIS行计数,ssis,rowcount,foreach-loop-container,Ssis,Rowcount,Foreach Loop Container,我有一个文件夹,其中包含每天替换的多个Excel文件。我需要一个总行数,它可以为我提供文件夹中每个单独Excel文件的行数总和(即,如果有3个文件,每个文件有10条记录,我需要30条结果计数)。然后,我需要每天运行这个包,将单个记录添加到日志表中,该日志表将为我提供文件夹中记录的每日计数。我一直在尝试Foreach循环容器和ADO枚举器,但似乎无法找到解决方案 您可以使用行计数组件 在控制流中创建数据流任务。然后,在数据流内部,使用连接到行计数组件的Excel源组件。创建一个整数变量,双击行计数
有一个很好的解决方案,无需使用任何脚本任务即可应用。您只需要使用“Foreach循环容器”、“数据流任务”和“执行SQL任务” 定义变量:
- V_filepath->(字符串)将保留文件所在的路径
- V_FileName->(字符串)将用Foreach容器中的文件名填充
- V_行数(整数)
- V_文件行数(整数)
- V_TotalRecords(整数)
您可以使用使用互操作查看Excel文件的脚本任务来完成此操作。感谢@TabAlleman的回复。我不熟悉编写任务脚本,以前从未使用过互操作。你能详细说明一下如何使用这个或给我指一个有用的资源吗?不,不幸的是,我手头没有任何东西。我能做的就是把这些关键词交给谷歌。嗨,亚历克斯。除了@TabAlleman的输入,我还建议使用Bing。
public void Main()
{
try
{
string Variables = "Loop Counter: " + Dts.Variables["User::V_RowCount"].Value.ToString() + " Total Records in all files: " + Dts.Variables["User::V_TotalRecords"].Value.ToString();
MessageBox.Show(Variables).ToString();
}
catch (Exception Ex)
{
MessageBox.Show(Ex.Message);
}
}