powershell - 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 显示的输出
看起来好像在导入时标题按字母顺序排列
解决方案
Get-Member
格式化的输出按顺序排列成员MemberType
,然后按顺序排列Name
。如果您想要基于输入对象顺序的属性列表,那么您可以使用PSObject.Properties
子属性。
$data.PSObject.Properties | Foreach-Object {
[void]$dt.Columns.Add($_.Name)
}
推荐阅读
- linux - 如何根据修改时间对Cent OS 7目录中具有特定扩展名的所有文件进行排序?
- javascript - 异步更新 Zabuto 日历
- python-3.x - 为什么在尝试解码我的 base32 字符串时出现“不正确的填充”错误?
- json - 在 Hyperledger Fabric 中存储 JSON 文档
- c# - 如何查询特定类型然后获取基础文档
- javascript - 创建新数组产生未定义的函数
- c# - 为什么关闭连接后可打印项目从打印队列中消失并且没有任何反应?
- testing - 播放:自动化测试数据设置
- javascript - 在 React Final Form 中,为嵌套字段提供初始值
- reflection - 声明后如何访问 ProtoField 的名称?