将 Header 条记录写入 CSV 文件
Write Header Record to CSV File
我正在使用 CSVHelper 将 DataReader 结果写入 csv 文件,一切正常,只是我需要手动输入 header 名称,而不是仅从 DataReader 中提取列名称。
所以目前我使用以下方法获取我的数据并放置一个 header: 它来自 CSVHelper 的文档:http://joshclose.github.io/CsvHelper/#misc-faq
while (rdr.Read())
{
if (!hasHeaderBeenWritten)
{
for (var i = 0; i < rdr.FieldCount; i++)
{
csv.WriteField(rdr.GetName(i));
}
csv.NextRecord();
hasHeaderBeenWritten = true;
foreach (var item in dataList)
{
csv.WriteRecord(item);
}
}
for (var i = 0; i < rdr.FieldCount; i++)
{
csv.WriteField(rdr[i]);
}
csv.NextRecord();
}
我主要是想在 3 列中添加一个手动名称,我的 class 允许它 return 与正在使用的 rdr.GetName(i) 方法多于。
有人有解决办法吗?我试过 csv.WriteField("namehere"[i]);这显然不起作用,而是将每个字母跨越三列,然后停止。
问题:“如何在 CSVHELPER 中正确添加自定义 HEADER?”
只需创建一个包含您想要的列名的字符串数组,然后使用 csv.WriteField(*ARRAYHERE*)[i];
将它们传递进来,对于每一列,它们将按照它们在数组中出现的顺序添加。
创建数组:
string[] arrayHeader = new string[] { "Header1", "Header2", "Header3" };
传递每个列名:
for (var i = 0; i < rdr.FieldCount; i++)
{
//csv.WriteField(rdr.GetName(i));
csv.WriteField(arrayHeader[i]);
}
我正在使用 CSVHelper 将 DataReader 结果写入 csv 文件,一切正常,只是我需要手动输入 header 名称,而不是仅从 DataReader 中提取列名称。
所以目前我使用以下方法获取我的数据并放置一个 header: 它来自 CSVHelper 的文档:http://joshclose.github.io/CsvHelper/#misc-faq
while (rdr.Read())
{
if (!hasHeaderBeenWritten)
{
for (var i = 0; i < rdr.FieldCount; i++)
{
csv.WriteField(rdr.GetName(i));
}
csv.NextRecord();
hasHeaderBeenWritten = true;
foreach (var item in dataList)
{
csv.WriteRecord(item);
}
}
for (var i = 0; i < rdr.FieldCount; i++)
{
csv.WriteField(rdr[i]);
}
csv.NextRecord();
}
我主要是想在 3 列中添加一个手动名称,我的 class 允许它 return 与正在使用的 rdr.GetName(i) 方法多于。
有人有解决办法吗?我试过 csv.WriteField("namehere"[i]);这显然不起作用,而是将每个字母跨越三列,然后停止。
问题:“如何在 CSVHELPER 中正确添加自定义 HEADER?”
只需创建一个包含您想要的列名的字符串数组,然后使用 csv.WriteField(*ARRAYHERE*)[i];
将它们传递进来,对于每一列,它们将按照它们在数组中出现的顺序添加。
创建数组:
string[] arrayHeader = new string[] { "Header1", "Header2", "Header3" };
传递每个列名:
for (var i = 0; i < rdr.FieldCount; i++)
{
//csv.WriteField(rdr.GetName(i));
csv.WriteField(arrayHeader[i]);
}