GUI从CSV中读取

时间:2018-01-18 19:42:34

标签: c# csv

我一直在使用VS2017将GUI脚本从另一种语言转换为C#。我的整个工作大部分都在工作,但是遇到了问题。 gui有一个列表视图,我通过在各个字段中输入数据或从CSV导入来手动填充。手动输入工作正常。 CSV导入也可以,但它会将标题行拉入列表视图。这是我用于按钮开始导入的代码:

private void import(object sender, RoutedEventArgs e)
{
  OpenFileDialog xls = new OpenFileDialog();
  xls.Multiselect = false;
  xls.Filter = "CSV files (*.csv)|*.csv";
  xls.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
  xls.ShowDialog();
  string ins;

  if (xls.FileName != null)
  {
    FileStream srcFS;
    srcFS = new FileStream(xls.FileName, FileMode.Open);
    StreamReader srcSR = new StreamReader(srcFS, System.Text.Encoding.Default);
    do
    {
        ins = srcSR.ReadLine();
        if (ins != null)
        {
            string[] parts = ins.Split(',');

            MyItems.Add(new MyItem
            {
                Name = parts[0],
                CPU = parts[1],
                RAM = parts[2],
                IP = parts[3],
                Subnet = parts[4],
                PortGroup = parts[5],
                Gateway = parts[6],
                DNS = parts[7],
                Description = parts[8],
                Template = parts[9],
                Host = parts[10],
                Site = parts[11],
                Folder = parts[12],
                Datastore = parts[13],
                Patch = parts[14],
                HDD1_Size = parts[15],
                HDD2_Size = parts[16],
                HDD3_Size = parts[17],
                HDD4_Size = parts[18],
                HDD5_Size = parts[19],
                HDD6_Size = parts[20],
                HDD7_Size = parts[21],
                HDD8_Size = parts[22],
                HDD9_Size = parts[23],
                HDD10_Size = parts[24]
            });
        }
    } while (ins != null);
    srcSR.Close();
 }

}

我一直在谷歌上搜索跳过第一行的某些方法,但大多数建议都是逐行迭代并一次写一行,这会减慢导入过程(可能有数百个线)。只是好奇是否有一种简单的方法告诉StreamReader从哪里开始读取文件。

1 个答案:

答案 0 :(得分:3)

你想读一条线然后扔掉它。只需在ins = srcSR.ReadLine();上方添加do