首页 > 解决方案 > Powershell DataTable 以错误的顺序显示标题

问题描述

当我将 csv 导入我的 GUI 时,标题会以错误的顺序导入有什么想法吗?

下面的代码

#### Load Data Table Into Gridview
$button2_Click = {

$data= Import-CSV "E:\testGui\_stock_processed2.csv" 

$dt = new-object System.Data.DataTable

$columns = $data | Get-Member -MemberType NoteProperty | select -ExpandProperty name | 
$columns | %{
 [void]$dt.columns.add($_)
}
$data | %{
 $currentRow = $_
 
 $dr = $dt.NewRow()
 $columns | %{
  $dr.$_ = $currentRow.$_ 
 }
 $dt.Rows.Add($dr)
}

$DataGridview1.DataSource = $dt
}

请查看正确的.CSV标题

在此处输入图像描述

和 GUI 显示的输出

在此处输入图像描述

看起来好像在导入时标题按字母顺序排列

标签: powershellvisual-studio-2019

解决方案


Get-Member格式化的输出按顺序排列成员MemberType,然后按顺序排列Name。如果您想要基于输入对象顺序的属性列表,那么您可以使用PSObject.Properties子属性。

$data.PSObject.Properties | Foreach-Object {
    [void]$dt.Columns.Add($_.Name)
}

推荐阅读