首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Out-GridView显示的是一个空白列,其中有实际数据。

Out-GridView显示的是一个空白列,其中有实际数据。
EN

Stack Overflow用户
提问于 2018-01-09 15:02:15
回答 2查看 985关注 0票数 8

我有这个CSV文件。

实际的CSV数据用";“分隔,如下所示:

代码语言:javascript
复制
[2017-04-27 15:45:04] ;x;/x;Succes;

您可以看到有一个列"Terminaison“,其中包含成功或失败信息。我的目标是在Gridview中显示文件的所有列。

我在做:

代码语言:javascript
复制
import-csv "C:\x\Journal\Capsule\CapsulePoste.csv" -Delimiter ";"

并获得包含适当数据的所有列的所需输出:

现在是我的问题:当我想在GridView中显示所有这些时,"terminaison“列都是空的?为什么?所有其他列都正确显示.

代码语言:javascript
复制
import-csv "C:\x\Journal\Capsule\CapsulePoste.csv" -Delimiter ";" | out-gridview

我发现在标题的末尾( csv文件的第一行)有一个空格导致了这个.

代码语言:javascript
复制
Date;Trousse;Version;Demandeur;Action;Paramètres;Terminaison 

(在“终止”之后有一个空白)

如果我在记事本中编辑csv并删除空白,bingo,它可以工作。然而,这并不能解决我的问题,因为我不想编辑文件的手。这个奇怪的限制是什么?有解决办法吗?

编辑:

下面所提供的答案是很好的。最后,我使用了另一个选项,我认为这是值得增加的可能性:

代码语言:javascript
复制
$content = Get-Content C:\x\Journal\Capsule\CapsulePoste.csv 
$content | Foreach {$_.TrimEnd()} | Set-Content C:\x\Journal\Capsule\CapsulePoste.csv
import-csv "C:\x\Journal\Capsule\CapsulePoste.csv" -Delimiter ";"| sort-object Date -descending
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-09 15:27:05

在导入CSV之后,有一种修复它的通用方法:

代码语言:javascript
复制
$CSV = import-csv "C:\x\Capsule\CapsulePoste.csv" -Delimiter ";"

$FixedObject = $CSV | ForEach-Object {
    $NewObject = New-Object -TypeName PSCustomObject
    $_.PSObject.Properties | ForEach-Object { $NewObject | Add-Member -Name $_.Name.Trim() -Value $_.Value -MemberType $_.MemberType }

    $NewObject
}

$FixedObject | Out-GridView

这将遍历每个结果对象的属性,然后使用相同的属性创建一个新对象,但使用在每个对象名称上运行的.Trim()方法来删除任何周围的空白。

这显然比在导入之前修复CSV文件的效率要低,但是如果您不能确定在CSV中头行出现的位置(因为它并不总是第一个),那么这样做(一般情况下)也会很棘手。

当然,如果您只想修复这一特定场景,则另一个答案是最简单的。

票数 4
EN

Stack Overflow用户

发布于 2018-01-09 15:16:41

正如我在注释中提到的,在属性的开头或结尾有空格或特殊字符时,有一个Out-GridView显示空值。我不知道空格错误的修复程序,但是您可以在从csv转换之前修复文件,如下所示:

代码语言:javascript
复制
(Get-Content "C:\X\Capsule\CapsulePoste.csv") -replace 'Terminaison ','Terminaison' |
    ConvertFrom-CSV -Delimiter ";" |
    Out-GridView

注:正如马特和马克所言,马克的回答更为笼统。这个快速修复假设Terminaison是要修复的头,并且在文档中找不到其他地方。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48171012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档