我有一组 500 个 csv 文件。每个文件都有四列和可变的行数。
我想将所有这些 csv 合并到一张公用表中。如果有人可以帮助我在 PowerShell 中完成此操作,那就太好了。
Sample Data in Excel 1:
Name Age Marks Class
A 15 100 5
B 20 88 6
Sample Data in Excel 2:
Name Age Marks Class
C 11 99 2
Output :
Name Age Marks Class
A 15 100 5
B 20 88 6
C 11 99 2
最佳答案
如果所有 CSV 文件都在一个文件夹中,则:
$res = @()
ls *.csv | %{
$temp = Import-CSV $_
$res += $temp
}
$res | Export-CSV .\ALLINFO.csv -NoTypeInformation
分解:
$res = @()
- 创建一个名为 $res 的数组来保存所有数据。这不是严格要求的。您可以通过直接附加到结果文件的方式来完成此操作。ls *.csv |
- 查找文件夹中的所有 CSV 文件并将它们传递给下一个命令。%{$temp = 导入 CSV $_; $res += $temp}
- 获取每个文件,将 CSV 数据导入到名为$temp
的持有者变量中。将$temp
的内容添加到收集器变量$res
中。同样,没有必要使用中间$tamp
变量,我只是发现这样做更清楚。$res | Export-CSV .\ALLINFO.csv -NoTypeInformation
- 既然所有文件中的数据都位于$res
中,请将$res
导出到新文件。
关于vba - 合并多个 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27784075/