代码之家  ›  专栏  ›  技术社区  ›  SomethingStrange

搜索、排序和保存大型电子表格

  •  0
  • SomethingStrange  · 技术社区  · 8 年前

    我正在使用一个相当大的excel电子表格,并试图找到最快速的方式来处理数据。该电子表格有31列和15000行。我需要提取大约15列信息。在处理这么多数据时,是否有“最佳实践”?我不能使用任何类型的数据库(如SQL)。

    List<string> columnOne = new List<string>();
    
    foreach(DatagridViewColumn Column in DatagridView2.Column)
    {
       if (Column[0].Value.toString().Contains("lastName")
        {
            foreach(DatagridViewRow row in DatagridView2.Rows)
            {
                columnOne.add(row.Value.toString());
            }
        }
    }
    

    1 回复  |  直到 8 年前
        1
  •  3
  •   Sach    8 年前

    我首先定义一个类来表示一行数据,然后是该类实例的列表。

    比如说,这是您的整个列集:

    而你只对 FirstName LastName DOB .

    我可以这样定义一个类:

    public class Person
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public DateTime DOB { get; set; }
    }
    

    private List<Person> people = new List<Person>();
    

    然后,我不再首先遍历列,在循环中遍历行,而是反过来。

    foreach(DatagridViewRow row in DatagridView2.Rows)
    {
        Person p = new Person();
        p.FirstName = row[0];
        p.LastName = row[1];
        p.DOB = row[3];
        people.Add(p);
    }
    

    显然,上面的代码是一种伪代码,不会编译。这只是向你展示这个想法。这有一个很大的优势,即将与一行相关的数据作为列表中的一个项目,而不是为单独的列创建单独的列表,在这种情况下,您以后必须额外查找相关数据。