первая пустая строка в 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 направление.