替换CSV导出中的值

时间:2012-07-19 16:17:40

标签: c# asp.net-mvc-3 entity-framework csv

我正在使用NuGet的CSVHelper组件。我已成功导出所有数据。但是,我有几个布尔类型的字段,并返回“真”/“假”到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);
    }

2 个答案:

答案 0 :(得分: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);
    }

答案 1 :(得分:0)

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

Convert.ToInt32(booleanValue);