Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
yankevich-2502 Участник
Вступление в Клуб: 19.09.2019
|
Чт Сен 19, 2019 15:34  Заливка ячейки Excel |
|
Полезность: Нет оценки
|
Как залить ячейки красным цветом?
Использую
Код: | &xl.Set_Format_Range(p_tl_row == 8 -- Строка адреса верхней левой (top left) ячейки диапазона
,p_tl_col == 1 -- Колонка адреса верхней левой (top left) ячейки диапазона
,p_br_row == v_currow - 1 -- Строка адреса нижней правой (bottom right) ячейки диапазона
,p_br_col == 14 -- Колонка адреса нижней правой (bottom right) ячейки диапазона
,p_numFmtId == null -- Идентификатор формата
,p_fontId == v_xl_font -- Идентификатор фонта
,p_fillId == null -- Идентификатор для тэга <fills />
,p_borderId == v_xl_border_all -- Идентификатор окантовок
,p_vertical == null -- Способ выравнивания в ячейке по вертикали.
,p_horizontal == null -- Способ выравнивания в ячейке по горизонтали.
,p_wrapText == null -- Необходимость переноса данных в ячейке по словам
,p_indent == null -- Количество пространства (нормальной стиль шрифта) отступа для текста в ячейке.
,p_shrinkToFit == null -- Автоподбор размеров строки / столбца: 1 - да, 0 - нет
,p_sheet == 1 -- Номер листа
);
v_xl_font := &xl.get_font (p_name == 'Arial', p_fontsize == 9, p_rgb == '000000', p_bold == false);
v_xl_format := &xl.get_numFmt('###,###,###,###,##0');
v_xl_border_all := &xl.get_border(p_top == &xl.xl_b_thin, p_bottom == &xl.xl_b_thin, p_left == &xl.xl_b_thin, p_right == &xl.xl_b_thin); |
А как задать p_fillId? |
|
 |
Матвеев Евгений Профи
Вступление в Клуб: 31.01.2012
|
Пт Сен 20, 2019 00:25  Re: Заливка ячейки Excel |
|
Полезность: 1
|
yankevich-2502 пишет: | Как залить ячейки красным цветом?
Использую
Код: | &xl.Set_Format_Range(p_tl_row == 8 -- Строка адреса верхней левой (top left) ячейки диапазона
,p_tl_col == 1 --
...
,p_fillId == null -- Идентификатор для тэга <fills />
...
,p_borderId == v_xl_border_all -- == &xl.xl_b_thin, p_left == &xl.xl_b_thin, p_right == &xl.xl_b_thin); |
А как задать p_fillId? |
Может так попробовать?)
Код: | ,p_fillId == &xl.get_fill_back_color('FF0000') |
не уверен что FF0000 красный правда
код можно посмотреть в VBA макросе заливки красным... и заменить) |
|
 |
Матвеев Евгений Профи
Вступление в Клуб: 31.01.2012
|
Пт Сен 20, 2019 10:30   |
|
Полезность: Нет оценки
|
Посмотрел на схеме
Примеров использования p_fillId вроде бы полно... нужно проверять
Код: |
, p_fillId == [OOXML]::[API_XL].get_fill_back_color(
&xl.Set_Format_Range(num_row, first2, num_row, first2 + 1, p_fillId == iFill);
&xl.Set_Format_Range(2, par_num_out_col, 2, par_num_out_col, p_fillId == iFill);
&xl.Set_Format_Range(cur_row,1,cur_row,19,p_borderId == iBorderAll,p_fillId == iBackColor, p_sheet==cur_sheet);
&xl.Set_Format_Range(9,1,9,5,p_fillId == &xl.get_fill_back_color( 'D9D9D9' )); -- серый
|
Касательно параметризации именно красного цвета
смотрим описание
Код: |
function get_fill_back_color
/* Получение из кэша идентификатора для тэга <fills />.
При отсутствии в кэше новое значение в него добавляется.
*/
( p_RGB varchar2 := null
/* 16-тиричное символьное значение
"Прозрачность Красный Зелёный Синий" (alpha red green blue)
(например, 'FFFF0000')
URL=http://en.wikipedia.org/wiki/RGBA_color_space
*/
)
/* Возвращается идентификатор для тэга <fills /> */
return integer;
function get_fill_back_color
( p_RGB varchar2 := null
)
return integer is
begin
return &xl.get_fill
( p_patternType == &xl.xl_fs_Solid
, p_fgRGB == p_RGB
);
end;
function get_fill
/* Получение из кэша идентификатора для тэга <fills />.
При отсутствии в кэше новое значение в него добавляется.
*/
( p_patternType varchar2
/* тип см xl_fs_...*/
, p_fgRGB varchar2 := null
/* 16-тиричное символьное значение
"Прозрачность Красный Зелёный Синий" (alpha red green blue)
(например, 'FFFF0000')
URL=http://en.wikipedia.org/wiki/RGBA_color_space
*/
, p_bgRGB varchar2 := null
/* 16-тиричное символьное значение
"Прозрачность Красный Зелёный Синий" (alpha red green blue)
(например, 'FFFF0000')
URL=http://en.wikipedia.org/wiki/RGBA_color_space
*/
)
/* Возвращается идентификатор для тэга <fills /> */
return integer;
function get_fill
( p_patternType varchar2
, p_fgRGB varchar2 := null
, p_bgRGB varchar2 := null
)
return integer
is
t_ind integer;
zFill tp_fill;
begin
if zWrkBook.fills.count() > 0 then
for f in 0 .. zWrkBook.fills.count() - 1 loop
zFill := zWrkBook.fills( f );
if zFill.patternType = p_patternType then
if coalesce( zFill.fgRGB, 'x' ) = coalesce(upper(p_fgRGB),'x')
and coalesce( zFill.bgRGB, 'x' ) = coalesce(upper(p_bgRGB),'x')
then
return f;
end if;
end if;
end loop;
zFill := null;
end if;
t_ind := zWrkBook.fills.count();
zFill.patternType := p_patternType;
zFill.fgRGB := upper( p_fgRGB );
zFill.bgRGB := upper( p_bgRGB );
zWrkBook.fills( t_ind ) := zFill;
return t_ind;
end;
|
Судя по описанию за красный отвечают 3 и 4 символы 00FF0000
смотрим примеры
Код: |
-- Вариант без указания Прозрачность alpha
iFill := &xl.get_fill_back_color('FF0000'); --Красный цвет.
|
не уверен что FF0000 красный правда ... скорее всего это таки красный цвет, плюс как вариант попробовать градации красного 00FF0000 AAFF0000 FFFF0000 |
|
 |
yankevich-2502 Участник
Вступление в Клуб: 19.09.2019
|
Пт Сен 20, 2019 14:24   |
|
Полезность: Нет оценки
|
Спасибо |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|