powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VSTO 2010 Excel Style, копирование заранее заданных стилей
2 сообщений из 2, страница 1 из 1
VSTO 2010 Excel Style, копирование заранее заданных стилей
    #37454481
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую всех!

Помогите, пожалуйста, разобраться с задачей выделения строк.

Есть прайс-лист с надстройкой AddIn (собственно ее и пишу с помощью VSTO), в этой настройке есть две кнопки (Выделить, Снять выделение). Необходимо по клику на кнопке "Выделить" выделять выбранную строку (выделить графически, например, задать фон желтого цвета), а по клику по второй, соответственно снимать ранее выставленное выделение (возвращать значение стилей к первоначальному значению).

Все индексы выделенных строк записываются в формате - [WorksheetIndex, RowIndex].

Прайс-лист разукрашенный (колонки названия продукта и цены имеют заданный цвет, остальные колонки могут быть одного цвета), суть в том, что после снятия выделения нужно вернуть стили по-умолчанию (каждой колонке должен быть установлен цвет, который был изначально до выделения).

Пробовал скопировать стиль строки и сохранить в переменной, примерно так:
Style nonSelectedRowStyle = Worksheet.Rows[индекс строки, Type.Missing].Style;

Затем пробовал задавать ему различные изменения и применять к выделенным строкам, так:
nonSelectedRowStyle.Font.Bold = true;

или подобное. Проблема в том, что все эти изменения отображаются на всем листе (т.е. есть связь между стилем прайс-листа и скопированным в переменную). Еще цветовое оформление отдельных колонок пропадало (я думал, что скопировав стиль всей строки, стили отдельных ячеек так же будут скопированы), но увы((

Помогите, пожалуйста, примером.
...
Рейтинг: 0 / 0
VSTO 2010 Excel Style, копирование заранее заданных стилей
    #37454869
EducatedFool
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Santa_RND, затерев форматирование строки, вы его целиком не восполните.
(разве что предварительно запомните в сотнях переменных исходные значения параметров форматирования для каждой перекрашиваемой ячейки)
Есть, конечно, вариант создания доп. листа (скрытого) на основе обрабатываемого (до начала обработки, с исходным форматированием), и потом восстанавливать форматирование путём его копирования со скрытого листа-оригинала, но этот способ тоже не назвать оптимальным.

Раз уж так надо выделять строки именно форматированием, - используйте УСЛОВНОЕ ФОРМАТИРОВАНИЕ.
Оно перекрывает обычное, и при удалении УФ она восстанавливает прежний вид.
Кода в этом случае тоже много, но восстановить форматирование ячейки будет намного проще
(если, конечно, ячейки изначального прайса не имеют условного форматирования)
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VSTO 2010 Excel Style, копирование заранее заданных стилей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]