0

我正在使用 CSVHelper 将 DataReader 结果写入 csv 文件,并且一切正常,除了我需要手动输入我的标题名称而不是仅从数据读取器中提取列名。

所以目前我使用以下内容来获取我的数据并放置一个标题:它来自 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 列中添加一个手动名称,而不是上面使用的 rdr.GetName(i) 方法。

有没有人有任何解决方案?我试过做一个 csv.WriteField("namehere"[i]); 这显然不起作用,而是将每个字母跨越三列然后停止。

4

1 回答 1

1

问题:“如何在 CSVHELPER 中正确添加自定义标题?

只需使用您希望的列名创建一个字符串数组,并将它们传递给 using csv.WriteField(*ARRAYHERE*)[i];,并且对于每一列 a,它们将按照它们出现在数组中的顺序添加。

创建他们的数组:

string[] arrayHeader = new string[] { "Header1", "Header2", "Header3" };

将每个列名传入:

                    for (var i = 0; i < rdr.FieldCount; i++)
                    {
                        //csv.WriteField(rdr.GetName(i));
                        csv.WriteField(arrayHeader[i]);
                    }
于 2016-02-17T13:08:26.163 回答