我正在使用 LinqToCSV 将列表输出到 CSV。示例代码片段如下:
class Person
{
[CsvColumn(Name = "Name", FieldIndex = 1)]
public string UserName { get; set; }
[CsvColumn(Name = "Address 1", FieldIndex = 2)]
public string Address1 { get; set; }
[CsvColumn(Name = "Telephone", FieldIndex = 3)]
public string Telephone { get; set; }
}
private void OutputToCSV(string filenamePrefix, List<Person> people)
{
CsvFileDescription outputFileDescription = new CsvFileDescription
{
SeparatorChar = ','
FirstLineHasColumnNames = true,
FileCultureName = "en-GB"
};
CsvContext cc = new CsvContext();
cc.Write(
people,
@"C:\temp\people.csv",
outputFileDescription);
}
我的问题是电话号码。如果它在对象中为 0123456789012,那么当我在 Excel 中打开 CSV 时,它被视为一个数字,并且前导零被删除。我想将 CSV 中的列预先格式化为文本。
根据停止 Excel 自动将某些文本值转换为日期,我可以用等号开始字段并将值放在引号中,但是我可以设置一个属性,这意味着 LinqToCSV 将为我执行此操作吗?我真的不想使用 LinqToCSV,然后打开文件并编辑它以获得我想要的。