【发布时间】:2015-10-07 18:52:56
【问题描述】:
我需要合并大量 Excel 电子表格。我使用 PowerSHell 将它们转换为 CSV,现在需要合并它们,但不像您通常那样。合并不使用连接。如果我有 3 个文件,每个文件有 100 行,那么我的新文件应该有 300 行。因此,如果使用 UNION 而不是 JOIN 来使用数据库术语,这更多。
某些列确实具有相同的名称。有些没有。如果它们具有相同的名称,则不应创建新列。有没有办法做到这一点而无需手动将所有列列为属性?
示例(只有 2 个文件)
文件1:
Name Address
Bob 123 Main
文件2:
Name City
Bob LA
Tom Boston
结果
Name Address City
Bob 123 Main
Bob LA
Tom Boston
【问题讨论】:
-
您如何知道要保留哪些属性?只是所有文件共享的那些?你有没有为此尝试过任何东西?回答第一个问题就是这个问题的答案。
-
我想要所有文件的所有属性。我尝试使用我在网上找到的 join-object 函数并进行完全连接,但它不起作用。
-
你有没有为此尝试过的东西......即使是最小的努力也会在这个问题中看起来不错。
-
我编写了将 excel 文件转换为 csvs 并循环导入 csvs 的代码。我还不知道如何进行合并。我以前也这样做过加入文件,但从来没有这样。
-
您可以简单地连接文件:
$File3 = $File1, $File2和 $File3 将包含所有对象(包括属性,证明:$File3[1].City)但如果您使用管道$File3,大多数 cmdlet 只会查看定义相关属性的第一个对象(包括将其通过管道传输到输出!)。因此你需要联合$File3 = $File1, $File2 | Union-Object,见:stackoverflow.com/a/44429084/1701026
标签: powershell csv export-to-csv