0

我正在使用 CSVReader 对象,但它跳过了第一行。有什么办法可以防止这种情况发生吗?

我的代码:

if (UploadFile.AskExt() == WebDialogResult.OK)
{
    StringBuilder filetext = new StringBuilder();


    PX.SM.FileInfo info = PXContext.SessionTyped<PXSessionStatePXData>().FileInfo["MyFileImportSessionKey"] as PX.SM.FileInfo;

    Byte[] bytes = info.BinData;

    using (CSVReader reader = new CSVReader(bytes, Encoding.ASCII.CodePage))
    {
        reader.Reset();
        filetext.Append("FIRST:" + reader.GetValue(0) + " DONE" + Environment.NewLine);

        while (reader.MoveNext())
        {
            for (int i = 0; i < reader.IndexKeyPairs.Count; i++)
            {
                filetext.Append(reader.GetValue(i));
            }
            filetext.Append(Environment.NewLine);
        }
        System.Web.HttpContext.Current.Session.Remove("MyFileImportSessionKey");
    }

    CurrentDocument.Ask(filetext.ToString(), MessageButtons.OK);
}

这始终显示第一行之后的所有行。我知道通常第一行是标题并且希望被忽略,但就我而言,我需要文件中的所有行。

4

1 回答 1

1

标头肯定是作为特例处理的。

我相信它在 IndexKeyPairs 公共集合中公开。

foreach (KeyValuePair<int, string> headerColumn in reader.IndexKeyPairs)
{
   int headerColumIndex = headerColumn.Key;
   string headerColumnCellValue = headerColumn.Value;
}
于 2018-05-03T18:25:56.013 回答