我有一个.csv文件,我想从一列获取所有数据并使用powershell生成一个数据透视表。这个专栏有很多重复,我想知道每个项目有多少。附上我想通过powershell而不是手动在excel中完成的图像。第一个图像是示例数据,第二个图像是我想从数据中生成的图像。感谢您的帮助:))
答案 0 :(得分:3)
Doug Finke制作了一个名为Import-Excel
的精彩PowerShell模块,你可以get here.
如果您使用的是PowerShell v5或更高版本,则可以这样安装:
Install-Module ImportExcel -scope CurrentUser
这个模块有一些很棒的Pivot功能,这是一个例子:
Get-Service |
Export-Excel "c:\temp\test2.xlsx" `
-Show `
-IncludePivotTable `
-IncludePivotChart `
-PivotRows status `
-PivotData @{status='count'}
我无法访问您的源数据,但您可以运行以下内容:
Import-CSV C:\yourPath\YourFile.csv | Export-Excel "c:\temp\OSReport.xlsx" `
-Show `
-IncludePivotTable `
-IncludePivotChart `
-PivotRows 'Operating System' `
-PivotData @{'Operating System'='count'}
我只是模拟了一些带有一些操作系统计数的文件,并通过该代码运行它。这是结果。
我希望这会让你朝着正确的方向前进!
关于此工具的一个重要说明:,每次运行Export-Excel
时都必须提供新的文件名,否则会抛出一条丑陋的错误消息。要么删除文件的脚本,要么每次更改文件名以避免它。
答案 1 :(得分:0)
我无法看到这些图片,但它应该是
$list = Import-Csv -Path P:\ath\to\file.csv -Delimiter ";"
$duplicates = ($list | Group-Object -Property <ColumName>).Where({ $_.Count -gt 1 })
将要替换为要搜索重复项的列的名称。
您需要的两个主要功能是Import-Csv&amp; Group-Object
考虑一下,Import-Csv在数组中创建PSCustomObjects,并且colums中的第一行是它们的属性。
因此,如果你有一个csv文件,如:
Column1;Column2;Column3
foo;bar;baz
baz;bar:foo
您将拥有一个PSCustomObjects数组,其中Column1,Column2,Column3作为属性。如果您的csv文件在第一行中没有列名,则可以使用带有参数-Header ColumName的Import-Csv。
总而言之,你想要做的只是一份简单的工作,只需阅读我所链接的功能,你就会这样做:)
Greetz Eldo.O