Применение форматирования к большому диапазону - PullRequest
0 голосов
/ 31 октября 2018

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

1 Ответ

0 голосов
/ 31 октября 2018

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...