Я пытаюсь использовать библиотеки 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 ячейкам. Что мне здесь не хватает? Обратите внимание, что диапазон, к которому я применяю стиль, начинается пустым (я записываю данные только после настройки форматирования), поэтому это не проблема, полученная из данных в ячейках.