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

如何在SSIS导出逗号分隔文件时为文本字段添加管道符|限定符

修改方案

核心修改逻辑

你需要调整脚本中写入单元格内容的逻辑,对文本类型字段/含分隔符的字段自动包裹管道符|作为限定符,修改位置为原代码中写入行数据的循环块,也可以按需同步修改表头写入逻辑。

修改后的核心代码段

// Write All Rows to the File
foreach (DataRow dr in d_table.Rows)
{
    for (int ir = 0; ir < ColumnCount; ir++)
    {
        if (!Convert.IsDBNull(dr[ir]))
        {
            string cellValue = dr[ir].ToString();
            Type columnType = d_table.Columns[ir].DataType;
            // 文本类型字段、或值包含分隔符的字段用管道符包裹
            if (columnType == typeof(string) || cellValue.Contains(FileDelimiter))
            {
                // 可选:如果内容本身存在管道符,可先做转义,取消下行注释即可
                // cellValue = cellValue.Replace("|", "\\|");
                sw.Write($"|{cellValue}|");
            }
            else
            {
                sw.Write(cellValue);
            }
        }
        if (ir < ColumnCount - 1)
        {
            sw.Write(FileDelimiter);
        }
    }
    sw.Write(sw.NewLine);
}

可选调整说明

  • 如果要求所有字段(包括数字、日期等类型)都统一包裹管道符,直接去掉类型判断和分隔符判断逻辑,所有值输出时统一套|即可:
    sw.Write($"|{cellValue}|");
    
  • 如果表头也可能包含分隔符,可对表头写入循环做相同的包裹处理即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 22:24:01