C # excel - извлекать только строки в диапазоне столбцов - PullRequest
2 голосов
/ 23 августа 2011

У меня есть следующий код:

Excel.Range range = workSheet.UsedRange;
for (rowCount = 2; rowCount <= range.Rows.Count; rowCount++)
  {
     //Do something here
  }

Однако я сталкиваюсь со следующей проблемой.Если у меня есть следующие данные Excel:

cell1, cell2, cell3

cell4, cell5, cell6

..............cell7

range.Rows.Count вернет 3. Однако меня не волнует столбец C - в нем есть некоторые данные, которые используются для раскрывающихся списков вскажем, столбец 1. Как я могу получить range.Rows.Count только для столбцов A и B?

Например: enter image description here

1 Ответ

1 голос
/ 23 августа 2011

Если в столбце A нет пробелов, просто переходите по строкам, пока не нажмете пустую строку, используя range.Offset(x,y): (извините, я лучше бегу с Excel VBA, вам придется переводить на C #)

Dim myCell as Range
set myCell = workSheet.Range("A2");
Do Until myCell.Formula = ""
     'Do something here
     set myCell = myCell.Offset(1,0) 'Moves down a row 
Loop

Или просто выполнить числовой цикл, используя Worksheet.Cells(row,col):

Dim myRow as Integer
myRow = 2
Do Until cells(myrow,2).Formula = ""
     'Do something here
     myRow = myRow + 1
Loop

Редактировать : Вы также можете использовать Range("A1").End(xlDown), чтобы найти последнюю заполненную ячейку первойколонка.Это должно работать с вашей текущей логикой.Что-то вроде (попробую в C #):

Excel.Range range = workSheet.Range("A1", Range("A1").End(xlDown));
for (rowCount = 2; rowCount <= range.Rows.Count; rowCount++)
  {
     //Do something here
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...