Выбор шрифта

Выбор шрифта Выбор шрифта Для задания шрифта ячеек электронной таблицы используем свойства и поля объекта Font области ячеек Range. В отличие от Delphi, в Excel объект Font имеет дополнительные параметры, но большинство полей совпадают по смыслу и по типу данных. В Excel дополнительно символы могут использоваться как верхний или нижний индексы, могут иметь несколько способов подчеркивания, а цвет символов может задаваться выбором из палитры. Рассмотрим в деталях объект Font и его поля. Объект Font является свойством ячейки или области ячеек Range, а доступ к нему получаем, используя следующий оператор: E.ActiveWorkbook.Sheets.Item[sheet].Range[range].Font, где E = Excel.Application. Объект Font имеет несколько полей, которые влияют на режим отображения символов ячейки. Name - наименование шрифта в формате string. В это поле записывается имя одного из шрифтов, установленного в системе. Bold - параметр, который может принимать значение True или False и который влияет на толщину символов. Italic - принимает значение True (наклонный) или False (прямой) и отвечает за наклонное написание символов. Strikethrough - равен True, если символы перечеркнутые, или False, если не перечеркнутые. Underline - свойство, которое определяет стиль подчеркивания, имеет тип Integer. Когда Underline=xlUnderlineStyleNone, символы отображаются без подчеркивания, если Underline=xlUnderlineStyleSingle, то используется обычное подчеркивание. Когда необходимо использовать дополнительные виды подчеркивания, то применяем определенные константы (смотрите приложение на домашней странице). Color - цвет символов, тип longint. Нетрудно провести соответствие между описанием полей объекта Font ячеек Excel и объектом Tfont Delphi. Ниже описанная функция использует это соответствие для задания шрифта ячеек таблиц Excel из приложений Delphi. Последним аргументом этой функции является ссылка на объект Font:Tfont, который является стандартным типом объекта Delphi. Этот аргумент мы используем для передачи параметров шрифта в Excel.

Function SetFontRange(sheet:variant;range:string;
 font:Tfont):boolean;
begin
 SetFontRange:=true;
 try
 E.ActiveWorkbook.Sheets.Item[sheet].Range[range].Font.Name:=font.Name;
 if fsBold in font.Style then E.ActiveWorkbook.Sheets.Item
  [sheet].Range[range].Font.Bold:=True
  else E.ActiveWorkbook.Sheets.Item[sheet].Range
  [range].Font.Bold:=False;
 if fsItalic in font.Style then E.ActiveWorkbook.Sheets.Item
  [sheet].Range[range].Font.Italic:=True
  else E.ActiveWorkbook.Sheets.Item[sheet].Range[range].Font.Italic:=False;
 E.ActiveWorkbook.Sheets.Item[sheet].Range[range].Font.Size:=font.Size;
 if fsStrikeOut in font.Style
  then E.ActiveWorkbook.Sheets.Item[sheet].Range
  [range].Font.Strikethrough:=True
  else E.ActiveWorkbook.Sheets.Item[sheet].Range
  [range].Font.Strikethrough:=False;
 if fsUnderline in font.Style then
  E.ActiveWorkbook.Sheets.Item[sheet].Range
  [range].Font.Underline:=xlUnderlineStyleSingle
  else E.ActiveWorkbook.Sheets.Item[sheet].Range
  [range].Font.Underline:=xlUnderlineStyleNone;
 E.ActiveWorkbook.Sheets.Item [sheet].Range
  [range].Font.Color:=font.Color;
 except
 SetFontRange:=false;
 end;
End;

Так как Excel имеет больше возможностей для отображения шрифта, то для реализации их можно использовать дополнительную функцию SetFontRangeEx. Аргумент Superscript=True определяет написание символов как верхний индекс. Subscript=True отображает символы как нижний индекс. Цвет символов может определяться не только полем Color объекта Font, но и полем ColorIndex того же объекта. ColorIndex может принимать следующие значения: -4105 - соответствует автоматическому выбору цвета; от 1 до 56 - одному из заданных значений палитры цветов. Underline определяет стиль подчеркивания (integer) и может принимать одно из пяти значений (смотрите исходный текст на домашней странице).

Function SetFontRangeEx(sheet:variant;range:string;

 underlinestyle,colorindex:integer;superscript,subscript:boolean):boolean;

begin

 SetFontRangeEx:=true;

 try

 E.ActiveWorkbook.Sheets.Item[sheet].Range[range].Font.Superscript:=superscript;

 E.ActiveWorkbook.Sheets.Item[sheet].Range[range].Font.Subscript:=subscript;

 E.ActiveWorkbook.Sheets.Item[sheet].Range[range].Font.ColorIndex:=colorindex;

 E.ActiveWorkbook.Sheets.Item[sheet].Range[range].Font.Underline:=underlinestyle;

 except

 SetFontRangeEx:=false;

 end;

End;

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...