vba - 合并多个 CSV 文件

标签 vba excel powershell

我有一组 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/

相关文章:

c# - 使用 PowerShell 发出 POST 请求

Powershell "private"范围似乎根本没有用

vba - XHTML 网站抓取指南

excel - 用于连接值的 UDF

excel - 当使用 vba 单击搜索按钮时,网页看不到在搜索框中输入的文本

python - 重要的包和模块与 py2exe 不兼容?

Excel VBA循环代码

vba - 如何获取VBA中第二个括号后面的文本?

c# - 使用新消息扩展异常

csv - Export-Csv 可以指定最大数量吗?在继续使用新的 CSV 之前要写入多少行? (分割文件)