Хобрук: Ваш путь к мастерству в программировании

c# interop excel range найти первое и последнее заполненное значение

У меня есть диапазон (одна строка), и я хочу знать позицию столбца первого и последнего заполненного значения в этом диапазоне. Вот как я пытаюсь рассчитать позицию.

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.

Любой указатель?


Ответы:


1

Вы можете использовать метод SpecialCells, доступный в Excel. https://msdn.microsoft.com/en-us/vba/excel-vba/articles/range-specialcells-method-excel

В вашем случае вы хотите найти последнюю ячейку так: xlCellTypeLastCell без значения, т.е. Type.Missing.

Excel.Range lastCell = workSheet.Cells.SpecialCells(XlCellType.xlCellTypeLastCell, Type.Missing); 
Excel.Range myRange = workSheet.get_Range("B1", lastCell);

lastCell должен предоставить значения строки и столбца.
Надеюсь, это поможет.

08.08.2018
  • Я могу использовать xlCellTypeLastCell, чтобы найти последнюю ячейку. Как получить позицию первого непустого элемента? 09.08.2018
  • Вы смотрели на UseRange? msdn.microsoft.com/en- мы/библиотека/ 09.08.2018
  • Новые материалы

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

    Введение в Джанго Фреймворк
    Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

    Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
    Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

    Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
    Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

    стройный-i18следующий
    Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..

    Обзор 20 основных и современных методов работы с массивами в JavaScript
    Вы знаете их всех? В этом коротком посте я покажу сводку методов, доступных в JavaScript для работы с массивами. Я надеюсь, что вы найдете это полезным! В конце поста вы найдете ссылку на..

    Да, но я чувствую необходимость указать, что это или не единственные два.
    Да, но я чувствую необходимость указать, что это или не единственные два. Обучение с подкреплением (в качестве примера) также является важным.