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

如何配置FileHelper使CSV的Descrizione字段支持多行内容?

解决FileHelper读取含换行字段的CSV问题

针对你遇到的字段包含换行导致读取错误的问题,可以通过以下两种方式解决:

方法一:指定记录结束标志(无需修改CSV)

修改实体类,添加[RecordEndsWith]属性,告诉FileHelper以#加换行(或仅#)作为记录的结束标识,这样引擎会自动读取字段内的换行内容,直到遇到记录结束符才分割记录:

[IgnoreFirst(1)]
[DelimitedRecord("#")]
// 兼容带换行和不带换行的记录结尾
[RecordEndsWith(new string[] { "#\r\n", "#" })]
public class PrezElementi
{
    public int idElemento { get; set; }
    public string? Descrizione { get; set; }
}

原理:默认情况下FileHelper以换行作为记录分隔符,添加该属性后,引擎会将从一个记录开始到#\r\n或#之间的内容视为完整记录,即使字段内包含换行也不会误分割。

方法二:给字段添加引号(需修改CSV)

如果可以调整CSV格式,将包含换行的Descrizione字段用引号包裹,然后在实体类字段上添加[FieldQuoted]属性:

修改后的CSV示例:

#123#"line A"#
#456#"line B
end line B"#
#789#"line C"#

修改后的实体类:

[IgnoreFirst(1)]
[DelimitedRecord("#")]
public class PrezElementi
{
    public int idElemento { get; set; }
    [FieldQuoted]
    public string? Descrizione { get; set; }
}

原理:[FieldQuoted]会让FileHelper识别引号内的内容为完整字段,忽略其中的换行符,避免误将字段内的换行当成记录分隔符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 06:45:57