流明CSV读取器无法读取第10列或后列

时间:2015-02-23 11:04:48

标签: c# .net csv

简而言之,我使用Lumen CSV阅读器尝试将CS​​V数据读入我的程序。

我循环遍历行中的列:

// open the file "data.csv" which is a CSV file with headers
using (CsvReader csv = new CsvReader(new StreamReader(Path), true))
        {

            string[] headers = csv.GetFieldHeaders();

            int RowCount = 1;

            while (csv.ReadNextRecord())
            {

                int TakenValsRowPosCount = 1; //Leave the first value at 0 for weird style

                for (int i = 0; i < csv.FieldCount; i++)
                {

                    if (HeaderstoInput.Contains(headers[i]))
                    {

                        if(!String.IsNullOrWhiteSpace(csv[i])) 
                            InputVals[RowCount, TakenValsRowPosCount] = Convert.ToDouble(csv[i]);

                        TakenValsRowPosCount++;

                    }

                }

                RowCount++;

            }

        }

出于某种原因,这项工作完全正常,直到我达到10.此值和此后的所有值都返回为&#34;&#34; (在手表中)。即使那里有数据。

我尝试从CSV中删除列以将第10列向左移动并读取它并且这样可行。所以它似乎不是数据本身的问题,只是第10列和更高的列。

我尝试将阅读器中的缓冲区大小更改为各种值。我似乎无法在其他地方找到任何关于这个问题的提法。

1 个答案:

答案 0 :(得分:0)

通过快速查看代码,它似乎假定CSV文件具有固定数量的字段,这是根据字段标题或从文件读取的第一个记录计算的。

标题行有多少个字段?我怀疑那里可能只有10个。