我正在使用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);
}
答案 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);