在PowerShell构造的CSV中,有没有办法在同一列中换行?例如
Role |Scope
--------------------
Role 01 |Scope 01
|Scope 02
--------------------
Role 02 |Scope 01
|Scope 03
我不确定这是否可以实现。如果没有,支持的格式是什么,例如HTML?
[更新]以下是我的CSV对象结构
class CsvObj {
[Object] ${Role}
[Object] ${Scope}
}
$roleList= Get-Role
$array = @()
ForEach ($role in $roleList) {
$roleObj = [CsvObj]::new()
$roleObj.Role = $role.Role
$roleObj.Scope = $role.Scope
$array += $roleObj
}
$array | Export-Csv -Path C:\file.csv
每个角色的作用域可能更多,我希望将它们适当地分组。
答案 0 :(得分:3)
为了使以后的数据易于处理,我建议您准备这样的数据:
Role Scope
---- -----
Role 01 Scope 01
Role 01 Scope 02
Role 02 Scope 01
Role 02 Scope 03
通过这种方式,您始终可以将其分组
Import-Csv foo.csv | group Role
其他版本的替代方案要复杂得多。
您可以在CSV单元格中插入换行符,但是出于这个目的,我认为它们不是最好的主意。如果您出于美观目的需要此功能,则CSV可能是错误的格式,HTML可能是更好的选择。
答案 1 :(得分:1)
只需在范围之间插入换行符(`n):
[pscustomobject]@{Role='Role 01';Scope="Scope 01`nScope 02"},
[pscustomobject]@{Role='Role 02';Scope="Scope 01`nScope 03"} | ConvertTo-Csv