在多列中插入多个CSV文件

时间:2015-12-11 07:08:36

标签: c# csv datagridview multiple-columns

Dategridview of my list of values

如何一次性从3个逗号分隔值(csv)文件中添加3列10列的值

  

说:C:\ FYP \ 2000data \ Z1ert00000.cvs,

     

C:\ FYP \ 2000data \ Z1ert00001.cvs和

     

C:\ FYP \ 2000data \ Z1ert00002.cvs

点击添加/导入按钮?

  

P.S:我有2000个cvs文件要插入到DatagridView中。在那儿   还有其他更简单的方法吗?意味着我将出现2000列   Datagridview。

 private void btnImport_Click(object sender, EventArgs e)
 {
      var parsedData = new List<string[]>();
      using (var sr = new StreamReader(txtFilename.Text))  // 
      {
          string line;
          while ((line = sr.ReadLine()) != null)
          {
              string[] row = line.Split(',');
              parsedData.Add(row);
          }

      }
      dataGridView1.ColumnCount = 2;
      for (int i = 0; i < 2; i++)
      {
          var sb = new StringBuilder(parsedData[0][i]);
          dataGridView1.Columns[1].Name = sb.ToString();
      }
      foreach (string[] row in parsedData)
      {
          dataGridView1.Rows.Add(row);
      }
      for (int x = 0; x < 5; x++)
      {
          dataGridView1.Rows.Remove(dataGridView1.Rows[0]);  // first 5 rows of the data
      }

      dataGridView1.Columns.Remove(dataGridView1.Columns[0]); // remove the first column 

 }

这些是仅导入一个csv文件的代码

提前致谢!! :)

1 个答案:

答案 0 :(得分:0)

你想要实现的目标

您说您希望在datagridview上看到2000个文件。我发现很难相信这是你真正想要的,因为它会成为

  1. 初始加载速度很慢(解析2000个文件)
  2. 不可读......滚动2000列?
  3. 所以我认为你应该首先考虑你想要对这些csv文件中的信息做什么。想想UI设计。也许创建一个搜索功能?

    使用大数据

    如果这些是静态文件,我建议将所有这些csv文件导入数据库,以便您可以轻松访问它们,并可以在程序中使用ORM模型。看一下Entity Framework。 将这些文件导入SQL数据库就像这样简单:

    BULK INSERT SchoolsTemp
    FROM 'C:\CSVData\Schools.csv'
    WITH
    (
        FIRSTROW = 2,
        FIELDTERMINATOR = ',',  --CSV field delimiter
        ROWTERMINATOR = '\n',   --Use to shift the control to next row
        TABLOCK
    )
    

    或使用任何已有的tutorials out there

    然后,您可以开始考虑分页您要获取的数据以及如何将它们可视化,以便数据变得有用。

    希望这有帮助。