如何使用powershell将过滤后的数据行和列从csv转储到excel

时间:2013-10-12 17:26:05

标签: powershell

我有一个csv文件说Test.CSV有列和数据值,如

A列具有T1,T2,T2,T1等值 B列的值如P1,P2,P2,P1

现在我想在检查/过滤T1 / T2的数量以及A&的P1 / P2数量后,将T1,T2,P1,P2转储到新的Excel表格中。 B分别出现在Test.CSV中,这样我保存的新文件Test2.xlsx应该看起来像

T1 = 2,P1 = 2,T2 = 2,P2 = 2

另外请告诉我是否要将新Excel工作表中T1 / T2 / P1 / P2的列名更改为T1-New / P1-New等,是否可以在转储过程中使用?

对此的任何帮助都将非常感激

1 个答案:

答案 0 :(得分:0)

您可以使用Group-Object cmdlet计算CSV列中的值:

$csv = Import-Csv 'C:\path\to\Test.CSV'

$colA = $csv | Group-Object 'A' | select Name, Count
$colB = $csv | Group-Object 'B' | select Name, Count

将name = count对放入Excel工作表的示例代码:

$xl = New-Object -COM 'Excel.Application'
$xl.Visible = $true

$wb = $xl.Workbooks.Add()

$val = "{0}={1}" - f $colA[0].Name, $colA[0].Count
$wb.Sheets.Item(1).Cells.Item(1, 1).Value = $val

$wb.SaveAs("C:\path\to\Test2.xlsx")
$wb.Close()

$xl.Quit()