【发布时间】:2018-10-14 16:53:55
【问题描述】:
我已经使用 PowerShell 将数据转换为如下对象,现在我想将其从垂直转换为水平。 (如 Excel 中的“文本到列”功能)。如何动态枚举“所有第 1 行”作为对象标题,其余的将分配给其子项?
输入文件在 PSObject 中包含“行”、“列”和“文本”三列
PS > $表 行列文本 --- ------ ---- 1 1 部门 1 2 时间 1 3 天1 1 4 天2 1 5 天3 1 6 天 4 1 7 天5 1 8 天6 1 9 天 7 2 1 营销 2 2 11:00 2 3 4 2 4 8 2 5 8 2 6 8 2 7 4 2 8 0 2 9 0 3 1 财务 3 2 09:00 3 3 4 3 4 8 3 5 8 3 6 8 3 7 4 3 8 0 3 9 0我尝试使用下面的代码将它分配给另一个对象,但我不知道如何让内容放入。
$data = New-Object –TypeName PSObject
$table | %{
if ($_.row -eq 1) {
$data | Add-Member –MemberType NoteProperty –Name $_.text –Value ''
}
}
输出:
PS > $data|ft
Dept Time Day1 Day2 Day3 Day4 Day5 Day6 Day7
---- ---- ---- ---- ---- ---- ---- ---- ----
预期结果:
部门时间 Day1 Day2 Day3 Day4 Day5 Day6 Day7 ---- ---- ---- ---- ---- ---- ---- ---- ---- 营销 11:00 4 8 8 8 4 0 0 财务 09:00 4 8 8 8 4 0 0【问题讨论】:
-
Sury.C - 你真的有一个包含 3 列名为 Row/Column/Text 的 CSV 吗?还是您有一个包含一列的文件 - 您命名为 Text 的文件?
-
SO 不是免费的代码编写服务。到目前为止,您尝试了什么(显示您的代码),您需要帮助解决什么具体问题(在您的代码中)?
-
对不起,我再补充一些信息
标签: powershell