У меня есть диапазон (одна строка), и я хочу знать положение столбца первого и последнего заполненных значений в этом диапазоне. Вот как я пытаюсь рассчитать позицию.
var xlRange = (Excel.Range)currentSheet.Cells[10, 1].EntireRow; // 10th row.
long firstColumn= (long)xlRange.get_End(Excel.XlDirection.xlToRight).Column;
Лист выглядит так:
firstColumn возвращает 8. Что правильно. Но я не знаю, как получить позицию столбца последней заполненной ячейки.
Также
long firstColumn= (long)xlRange.get_End(Excel.XlDirection.xlToRight).Column;
верните 12 для firstColumn
, когда excel настроен, как показано ниже:
Я ожидал получить 1.
Любой указатель?
Вы можете использовать метод SpecialCells, доступный в Excel. https://msdn.microsoft.com/en-us/vba/excel-vba/articles/range-specialcells-method-excel
В вашем случае вы хотите найти последнюю ячейку так: кслселтипеластцелл без значения, т.е. Type.Missing.
Excel.Range lastCell = workSheet.Cells.SpecialCells(XlCellType.xlCellTypeLastCell, Type.Missing);
Excel.Range myRange = workSheet.get_Range("B1", lastCell);
lastCell должен предоставить значения своих строк и столбцов. Надеюсь это поможет.
Вы изучали UsedRange? msdn.microsoft.com/en-us/library/…
Я могу использовать xlCellTypeLastCell, чтобы найти последнюю ячейку. Как мне получить позицию первого непустого элемента?