【问题标题】:Getting the length of a row in excel获取excel中一行的长度
【发布时间】:2015-06-09 19:04:15
【问题描述】:

我想在 c# 的列表中放入一些 excel 行。 目前我使用这个:

private static Microsoft.Office.Interop.Excel.ApplicationClass appExcel;
private static Workbook newWorkbook = null;
private static _Worksheet objsheet = null;

for (int j = 1; j < 3000; j++)
{
  list.add(excel_getValue("A"+j)); //ROW A in excel
}

我的 excel 行 (A) 的长度约为 2800,并且可以添加一些东西,这就是为什么我把它设为 3000 只是为了确定。但是有没有办法获得特定行中填充列的确切数量? 比如:

objsheet.get_Range("A").EntireRow.Height(); //this doesn't work

【问题讨论】:

  • 身高与此无关。您可能想要解析和控制每个填充的行?
  • 我找到了一个足够好的解决方案,我只是没想到,谢谢你和我一起思考:)

标签: c# excel row


【解决方案1】:

这很聪明,但我不会这样做,因为用户实际上可以修改该数字。我宁愿为该行画圈,直到单元格为空,我会认为该单元格是我的画圈的结尾

bool endReach=false;    
for (int j = 1; !endReach; j++)
    {
      if(excel_getValue("A"+j) == "" && excel_getValue("A"+(j+1)) == "")
      {
             endReach=true;
       }else{
             list.add(excel_getValue("A"+j)); //ROW A in excel
       }
    }

要小心,因为如果用户填写了所有行,它可能会引发异常。 PS:我不太确定单元格的“值”属性,因此您可能需要更改它。
希望对您有所帮助!

【讨论】:

  • 很高兴它有帮助! ps:你能把它标记为答案吗?所以其他人可以调查一下!
  • 好的,差点忘了标记!感谢您解决我的问题! =D
  • 没问题的家伙! :D
【解决方案2】:

找不到明确的解决方案,因此将执行以下操作来解决它:

在 Excel 中,我将第一行的第一列留空,其中包含一个总和:它只是将其下单元格中的所有数据相加,如果它已满,它将计数 +1,否则 +0,我是将在 C# 中读取该数字。 :)

在 Excel 中使用这个公式:

=COUNTA(A2:A5000)

【讨论】:

  • 这很聪明,但我不会这样做,因为用户实际上可以修改该数字。我宁愿为该行画圈,直到单元格为空,我会将该单元格视为我的画圈的结尾。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-06
  • 2020-07-14
  • 1970-01-01
  • 2011-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多