C# 如何获取excel最后一列的范围(电子表格)

C# 如何获取excel最后一列的范围(电子表格),c#,excel,spreadsheetgear,C#,Excel,Spreadsheetgear,我试图获得列的总数,以便设置从C列到N列的范围。我试图遍历每一列,并将所需的数据提取到一个数组中,直到到达包含数据的最后一列 我试过下面的一行,但其他的我都没有 IRange strategyname = foratworkbook.Worksheets["Strategy"].Cells["C4"].CurrentRegion; C D E 9.040% 10.910% 6.050% 4.920% 5.510%

我试图获得列的总数,以便设置从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%
有什么想法吗?
谢谢

如果您知道数组的最大大小,您可以将整个表A:nx行NUM作为数据表拉入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;
   }
公共静态int findNullRow(数据表dt)
{
int行=0;
对于(int a=0;a
另一种方法是,在电子表格的第一行迭代地提取单个单元格值,并测试以找到第一个空列。对第一列数据执行相同操作,直到找到第一个空行


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

以下链接将帮助您读取上次编辑范围内的数据。 和

显示图纸数据结构的屏幕截图。您使用哪种编程语言?请在问题标签中说明。添加了数据结构。单元格C4在哪里,以C(GBP)表示?C(GBP)和9.040%之间是否有空行?我只放了3列作为示例。但它可以是C:E或C:L..Ammar right,使用
sheet.UsedRange.Columns.Count
sheet.UsedRange.Rows.Count
获取实际数据。