Применение форматирования к большому диапазону

Я пытаюсь использовать библиотеки Excel Interop C# для копирования форматирования ячеек из одной ячейки в ряд других ячеек. Для этого я использую следующий код:

var excelWrapper = new Application();
excelWrapper.DisplayAlerts = false;

var workBook = excelWrapper.Workbooks.Open(@"C:\myFile.xlsx");
Worksheet ws = workBook.Sheets[1] as Worksheet;
Range formatSource = ws.Cells[8, 1] as Range; //cell containing formatting that I want to apply
Range startCell = ws.Cells[9, 1] as Range; //first cell to format
Range endCell = ws.Cells[300, 1] as Range; //last cell to format
Range formatTarget = ws.Range[startCell, endCell];

//Copy formatting from source cell to destination range
formatSource.Copy();
formatTarget.PasteSpecial(XlPasteType.xlPasteFormats, XlPasteSpecialOperation.xlPasteSpecialOperationNone, false, false);

Как видите, я применяю формат ячейки [8,1] ко всему диапазону [9,1] -> [300,1].

Проблема, с которой я столкнулся, заключается в том, что это применяет форматирование только к первым ~ 80 ячейкам или около того, после чего форматирование не применяется. В частности, форматирование прекращается после строки 91, поэтому оно применяется только к первым 84 из 291 ячеек в диапазоне.

Я не понимаю, почему форматирование применяется не ко всему выбранному мной диапазону, а только к первым 84 ячейкам. Что мне здесь не хватает? Обратите внимание, что диапазон, к которому я применяю стиль, начинается пустым (я записываю данные только после установки форматирования), поэтому это не проблема, полученная из данных в ячейках.

0
0
98
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ну, я понял: файл excel смотрел пуст, но на самом деле он содержит таблицу, которая остановилась на строке 91. Очевидно, когда вы вставляете формат в диапазон, который является «гибридным» (половина внутри таблицы и половина нормальных ячеек), формат применяется только к части внутри таблицы.

Другие вопросы по теме