0

我正在使用 NuGet 的 CSVHelper 组件。我已成功导出所有数据。但是,我有几个布尔类型的字段并将“true”/“false”返回到 csv 文件。我的项目要求我输出“1”或“0”而不是“true”/“false”。实现这一目标的最简单方法是什么?

    var AllRecords = surveyResponseRepository.Get()
                    .Where(r => r.ProgramId == ProgramId);

    string uniqueID = Guid.NewGuid().ToString(); 

    var appData = Server.MapPath("~/CsvExport/" + uniqueID + ".csv");

    using (var csv = new CsvWriter(new StreamWriter(appData)))

    {
        csv.Configuration.HasHeaderRecord = true;
        csv.Configuration.Delimiter = ',';
        csv.WriteRecords(AllRecords);
    }
4

2 回答 2

1

我相信您可以继承 CsvWriter 并将 WriteField 覆盖为如下所示:

    public override void WriteField( string field )
    {
        if (field.ToLower() == bool.TrueString.ToLower())
             field = "1";
        if (field.ToLower() == bool.FalseString.ToLower())
             field = "0";
        base.WriteField(field);
    }
于 2012-07-19T16:28:58.520 回答
0

循环遍历 AllRecords 中的每条记录,找到由布尔值表示的字段,并使用以下内容转换为整数值:

Convert.ToInt32(booleanValue);
于 2012-07-19T16:23:09.903 回答