如何使用PowerShell将CSV单个列中的多值拆分到多个列
PowerShell CSV单列多值拆分解决方案
你的原有代码逻辑为遍历CSV所有列,将每一列单独导出为独立CSV文件,与你需要实现的「单列内多个值拆分到同行的后续多列」需求不匹配。
你可以参考如下实现方案:
- 先确认两个核心配置:你需要拆分的目标列名称、该列内多个值的分隔符(比如逗号、空格、竖线等)
- 将对应参数替换到下方代码中即可运行:
# 按需修改以下配置参数 $sourceCsvPath = "G:\Test.csv" $outputCsvPath = "G:\Test_拆分结果.csv" $待拆分列名 = "请替换为实际列名" $列内值分隔符 = " " # 示例为空格,如为逗号则修改为"," $最大拆分列数 = 10 # 根据实际单列最多包含的值数量调整 # 读取源文件 $csvData = Import-Csv -Path $sourceCsvPath -Delimiter ';' # 构造查询规则 $selectRule = @( # 保留原始所有列,不需要保留就删除此行 '*' # 生成拆分后的列规则 for ($idx = 1; $idx -le $最大拆分列数; $idx++) { @{ Name = "拆分列$idx" Expression = { ($_.$待拆分列名 -split $列内值分隔符, $最大拆分列数)[$idx - 1] } } } ) # 导出结果 $csvData | Select-Object $selectRule | Export-Csv -Path $outputCsvPath -NoTypeInformation -Delimiter ';' -Encoding UTF8
如果不需要保留原始的待拆分列,删除代码中'*'这一行,在相同位置填入你要保留的其他列名即可,多个列名用逗号分隔。
内容的提问来源于stack exchange,提问作者microset
相关产品推荐
相关产品推荐

