我有一个文件夹,其中包含许多具有相同格式的 csv 文件(相同的表结构但不同的数据)。我希望将这些 csv 文件中的所有数据作为 SSIS 包中的单个数据集。我当前的解决方案是这样的:在 SQL Server 中创建一个帮助表,并使用 For Each Container 将所有文件加载到表中。然后将此表加载为 SSIS 包中所需的单个数据集。
但是,我非常喜欢一种不依赖于在 SQL Server 中创建此类额外表的方法。我在想可能有更好的方法使用 C# 和脚本组件来做到这一点。有人有什么建议吗?
最佳答案
怎么样:
var allCsv = Directory.EnumerateFiles("Src-Path", ".*csv", SearchOption.TopDirectoryOnly);
string[] header = { File.ReadLines(allCsv.First()).First(l => !string.IsNullOrWhiteSpace(l)) };
var mergedData = allCsv
.SelectMany(csv => File.ReadLines(csv)
.SkipWhile(l => string.IsNullOrWhiteSpace(l)).Skip(1)); // skip header of each file
File.WriteAllLines("Dest-Path", header.Concat(mergedData));
请注意,您必须使用 System.Linq 添加;
关于c# - 将多个 csv 文件作为单个数据集加载的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43173319/