первая пустая строка в excel

есть ли способ найти первую доступную пустую строку в листе excel с помощью vsto или c# ? Я искал часами, но не могу найти ничего, связанного с этим. Любая помощь в этом отношении будет очень признательна

3 ответов


Если приложение является вашим приложением excel, вы можете перебирать строки, начиная с номера 1, и искать первую пустую функцию CountA (она возвращает количество непустых ячеек для диапазона):

int rowIdx = 0;
int notEmpty = 1;
while (notEmpty > 0)
{
    string aCellAddress = "A" + (++rowIdx).ToString();
    Range row = App.get_Range(aCellAddress, aCellAddress).EntireRow;
    notEmpty = _App.WorksheetFunction.CountA(row);
}

когда цикл while завершается, rowIdx является индексом первой пустой строки.

CountA получает другие 29 необязательных аргументов, поэтому возможно, что вы должны пройти отсутствует.Значение 29 раз с более ранними версиями фреймворка.


Excel.Worksheet xlWorkSheet1 = (Excel.Worksheet)excelbk.Worksheets["Sheet1"];
xlRange = (Excel.Range)xlWorkSheet1.Cells[xlWorkSheet1.Rows.Count, 1];
long lastRow = (long)xlRange.get_End(Excel.XlDirection.xlUp).Row;
Long newRow = lastRow + 1

код из этой ссылки: http://social.msdn.microsoft.com/Forums/pl/exceldev/thread/90384567-3338-4c56-bc6b-70db94d8cbcc


есть ряд.Конечное свойство или диапазон.get_End метод, который в сочетании с направлением даст вам первую пустую ячейку в диапазоне.

взгляните на этот вопрос для возможного решения: как найти следующую пустую строку в листе Excel программно с помощью C#
Ключевой бит:

Excel.Worksheet xlWorkSheet1 = (Excel.Worksheet)excelbk.Worksheets["Sheet1"];
xlRange = (Excel.Range)xlWorkSheet1.Cells[xlWorkSheet1.Rows.Count, 1];
long lastRow = (long)xlRange.get_End(Excel.XlDirection.xlUp).Row;
Long newRow = lastRow + 1

но если у вас есть столбец, который вы знаете, всегда будет заполнен каждой ячейкой до последней, тогда вы можете получить конец в down направление.