Приведенные ниже решения работают нормально, но замораживает первый ряд текущего видимого снимка листа. Например: если ваш текущий видимый снимок листа находится в ряду от 43 до некоторого числа, скажем, 90 ..., то строка замораживания применяется к 43.
Если вы хотите, чтобы был заморожен только самый первый ряд листа (строка заголовка), независимо от положения прокрутки в Excel, то приведенное ниже решение сработало для меня. Этот код прокручивает таблицу Excel до строки 1. Вам нужно сохранить позицию, если вы хотите вернуться к предыдущей позиции перед остановкой.
worksheet.Application.ActiveWindow.ScrollRow = 1;
worksheet.Application.ActiveWindow.SplitRow = 1;
worksheet.Application.ActiveWindow.FreezePanes = true;