TextFieldParser忽略标题行C#

时间:2017-02-01 09:36:57

标签: c# csv ssis

读取CSV文件和TextFieldParser会跳过标题行。

任何想法如何确定第一行都被跳过。

String[] Col3Value = new string[40];
TextFieldParser textFieldParser = new TextFieldParser(File1);
textFieldParser.TextFieldType = FieldType.Delimited;
textFieldParser.SetDelimiters(",");
{
    {
        string FileName = this.Variables.FileName.ToString();
        {
            while (!textFieldParser.EndOfData)         
            {
                File1OutputBuffer.AddRow();

               string[] values = textFieldParser.ReadFields();

               for (int i = 0; i <= values.Length - 1; i++)
               {
                   Col3Value[i] = values[i];

                   File1OutputBuffer.Column1 = Col3Value[0];
                   File1OutputBuffer.Column2 = Col3Value[1];
               }
           }
       }
   }
   textFieldParser.Close();
}

2 个答案:

答案 0 :(得分:6)

您必须手动跳过第一行。

来自Parsing a CSV file using the TextFieldParser

的示例
using (TextFieldParser parser = new TextFieldParser(path))
{
    // set the parser variables
    parser.TextFieldType = FieldType.Delimited;
    parser.SetDelimiters(",");

    bool firstLine = true;

    while (!parser.EndOfData)
    {
        //Processing row
        string[] fields = parser.ReadFields();

        // get the column headers
        if (firstLine)
        {
            firstLine = false;

            continue;
        }           
    }
}

答案 1 :(得分:2)

以未解析的方式明确阅读第一行

if (!parser.EndOfData) {
    parser.ReadLine();
}

while (!parser.EndOfData)
{
    var fields = parser.ReadFields();
    ...
}