我正在使用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);
}
这始终显示第一行之后的所有行。我理解通常第一行是标题,并且希望被忽略,但在我的情况下,我需要文件中的所有行。
答案 0 :(得分:1)
标题肯定是作为一种特殊情况处理的。
我相信它已在IndexKeyPairs公共集合中公开。
foreach (KeyValuePair<int, string> headerColumn in reader.IndexKeyPairs)
{
int headerColumIndex = headerColumn.Key;
string headerColumnCellValue = headerColumn.Value;
}