自从我编写字符串以来,我一直在编写csv文件,但是在寻找更结构化的解决方案时,我遇到了csvhelper。我很清楚如何读取数据并执行类型转换,但是在编写csv文件以指定字段长度时该怎么办?假设我有一个从0开始且长度为4个字符的字段...我该如何指定呢?我还没有找到属性,大约...
谢谢
答案 0 :(得分:1)
您可以使用自定义类型转换器来指定固定宽度。
void Main()
{
var records = new List<Foo>
{
new Foo { Id = 1, Name = "one" },
};
using (var writer = new StreamWriter("path\\to\\file.csv"))
using (var csv = new CsvWriter(writer))
{
csv.Configuration.RegisterClassMap<FooMap>();
csv.WriteRecords(records);
}
}
public class Foo
{
public int Id { get; set; }
public string Name { get; set; }
}
public sealed class FooMap : ClassMap<Foo>
{
public FooMap()
{
AutoMap();
Map(m => m.Id).TypeConverter<FixedWidthOutput>();
}
}
public class FixedWidthOutput : Int32Converter
{
public override string ConvertToString(object value, IWriterRow row, MemberMapData memberMapData)
{
return value.ToString().PadLeft(4, '0');
}
}