如何使用C#将CSV导出时的单列数据拆分为两列
实现代码
var pincodes = DataSourceAccess.RetrieveLockedTns(Convert.ToInt32(count))?.ToList(); if (pincodes != null && pincodes.Count > 0) { var csv = new StringBuilder(); // 写入表头 csv.AppendLine("pincode1,pincode2"); // 计算半长,向上取整兼容奇数条数据场景 int halfCount = (pincodes.Count + 1) / 2; for (int i = 0; i < halfCount; i++) { string column1Val = pincodes[i]; string column2Val = i + halfCount < pincodes.Count ? pincodes[i + halfCount] : string.Empty; // 拼接行,逗号为CSV标准分隔符,可根据需要替换为制表符\t或空格实现对齐效果 csv.AppendLine($"{column1Val},{column2Val}"); } File.WriteAllText(path, csv.ToString()); }
注意事项
- 代码默认使用CSV标准的逗号作为列分隔符,如果需要和示例一致的空格对齐效果,可将拼接行中的逗号替换为适当数量的空格或制表符
\t - 已兼容总条数为奇数的场景:当总条数为奇数时,最后一行第二列自动留空
- 提前将查询结果转为
List类型,避免多次枚举数据源带来的额外性能开销
内容的提问来源于stack exchange,提问作者Roshani
相关产品推荐
相关产品推荐

