You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell生成CSV:如何实现单元格内换行且保留同一单元格

解决CSV单元格内换行的问题

要让用户列表在CSV的同一个单元格内换行,核心是符合CSV格式规范:包含换行的字段必须用双引号包裹,且Windows环境下要用rn(回车+换行)作为换行符,具体方案如下:

方法1:用自定义对象导出(推荐)

这种方式PowerShell会自动处理引号,更省心:

# 示例用户列表
$users = @("张三", "李四", "王五")
# 用`r`n拼接成带换行的字符串
$multiLineUsers = $users -join "`r`n"
# 创建自定义对象
$csvData = [PSCustomObject]@{
    用户列表 = $multiLineUsers
}
# 导出CSV,指定编码避免乱码
$csvData | Export-Csv -Path "用户列表.csv" -NoTypeInformation -Encoding UTF8

方法2:手动拼接CSV内容

如果是手动构建CSV字符串,必须给带换行的字段加双引号:

$users = @("张三", "李四", "王五")
# 拼接表头和带引号的多行内容
$csvContent = "用户列表`r`n" + '"' + ($users -join "`r`n") + '"'
# 写入文件
$csvContent | Out-File "用户列表.csv" -Encoding UTF8

关键原因

之前失败是因为只加了换行符但没给字段套双引号,CSV解析器会把换行识别成新行,导致每个用户占一个单元格。同时Windows下的CSV阅读器(比如Excel)只认rn作为单元格内的换行,单独用n或者[Environment]::NewLine(部分场景可能只输出n)会不生效。

内容的提问来源于stack exchange,提问作者Pablo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 10:45:33