在Excel C#中查找数据行的最小列数

时间:2014-12-17 09:36:37

标签: c# excel-interop

在Excel文档中,假设有如下所示的数据:

1 a
2 b c
3 d e f
4 g h i j k
5 l m n

考虑前两行是标题,数据行来自第三行。如果为3,则可以从此数据中找到最小列数,因为所有行都将公共数据放入所有列中。

我所拥有的是两个课程,如下所示

 public class RowEntity
 {
     public List<String> ColumnValues { get; set; }
 }
 public class FileEntity
 {
     public List<RowEntity> RowValues { get; set; }
 } 

可以访问的数据行可能如下所示:

List <RowEntity> dataRows = fileObj.RowValues.GetRange(int index, int count);

我需要有类似的东西:

    private int GetMinimumColumnCount(List <RowEntity> dataRows)
    {
        int minColCount;
        FileEntity fileObj = new FileEntity(); // to access the rows from the Excel file
        int headerLines; // can be changed but here set in given example

        // calculate the minColumnCount for the 

        return minColCount; 
    }

任何想法如何?

1 个答案:

答案 0 :(得分:1)

最终排序

使用nullable int类型的原因是第一个值可以为null但最初为0将永远不会进行正确的检查。

    private int? GetMinimumColumnCount(List <RowEntity> dataRows)
    {
        int ? minColumnCount = null;

        for (int i = 0; i < dataRows.Count; i++)
        {
            if (minColumnCount == null || minColumnCount > dataRows[i].ColumnValues.Count) 
            {
                minColumnCount = dataRows[i].ColumnValues.Count; 
            }     
        }
        return minColumnCount; 
    }