1

我正在尝试获取列的总数,以便我可以设置从 C 列到 N 列的范围。我试图遍历每一列并将我需要的数据提取到一个数组中,直到我到达包含数据的最后一列。

我尝试了以下适用于一排的方法,但我没有其他方法。

IRange strategyname = foratworkbook.Worksheets["Strategy"].Cells["C4"].CurrentRegion;

C           D           E 
9.040%      10.910%     6.050%
4.920%      5.510%      3.430%
53.030%     64.400%     36.030%

有任何想法吗?谢谢

4

2 回答 2

2

如果您知道数组的最大大小,您可以将整个表 A:N x row nums 作为 DataTable 拉入 C#,找到第一个空列和第一个空行,然后从该 DataTable 中删除为空的列和行。这是一个相当快速和直接的过程。

这些函数应返回数据表中的第一个空行和列

   public static int findNullRow(DataTable dt)
   {
       int row = 0;

       for (int a = 0; a < dt.Rows.Count; a++)
       {
           if (dt.Rows[a][0] == null)
           {
               row = a;
               break;
           }
       }

       return row;
   }

   public static int findNullColumn(DataTable dt)
   {
       int col = 0;

       for (int i = 0; i < dt.Columns.Count; i++)
       {
           if (dt.Rows[0][i] == null)
           {
               col = i;
               break;
           }
       }

       return col;
   }

另一种方法是在电子表格的第一行迭代工作,提取单个单元格值并测试以找到第一个空列。对第一列数据执行相同操作,直到找到第一个空行。

我的感觉是,除非潜在的行数非常大,否则第一种方法会更快。

于 2013-12-06T00:42:36.533 回答
1

以下链接将帮助您阅读直到最后编辑范围的数据。 SpreadSheetGear - 从 Excel 列中读取唯一值使用 SpreadSheetGear 获取数据行数?

于 2014-10-24T07:08:03.633 回答