Шаг 143.
Автоматизация Microsoft Excel. Работа с ячейками.
Выравнивание текста в ячейке (еще продолжение)

    На этом шаге мы рассмотрим поворот текст в ячейке.

    Еще один способ изменения расположения текста в ячейке - его поворот. Поворот текста, отображающего значение ячейки, определяется свойством Orientation и может быть задан величиной от -90 до +90 градусов.

procedure TForm1.Button3Click(Sender: TObject);
//Задание поворота
begin
   Range.Orientation:=SpinEdit1.Value;
end;

    Результат выполнения представленной выше процедуры Delphi может выглядеть, как показано на рисунке 1.


Рис.1. Поворот текста

    При программировании поворота текста нужно учитывать, что шаг угла поворота составляет 1 градус в пределах от -90 до +90 градусов.

    Вот полный текст приложения.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComObj, Spin;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    ComboBox1: TComboBox;
    Label3: TLabel;
    ComboBox2: TComboBox;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    Label4: TLabel;
    SpinEdit1: TSpinEdit;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure CheckBox2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
var
  E:variant;
  Range:variant;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
//Создание объекта Excel и отображение окна
begin
  E:=CreateOleObject('Excel.Application');
  E.Visible:=True;
end;

procedure TForm1.Button2Click(Sender: TObject);
//Создание рабочей книги
begin
  E.WorkBooks.Add;
end;

procedure TForm1.Edit1Exit(Sender: TObject);
//Определение области
begin
 Range:=E.ActiveSheet.Range[Edit1.Text];
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
//Задание горизонтального выравнивания
begin
  case ComboBox1.ItemIndex of
    0: Range.HorizontalAlignment:=-4108; //xlHAlignCenter
    1: Range.HorizontalAlignment:=7;     //xlHAlignCenterAcrossSelection
    2: Range.HorizontalAlignment:=-4117; //xlHAlignDistributed
    3: Range.HorizontalAlignment:=5;     //xlHAlignFill
    4: Range.HorizontalAlignment:=1;     //xlHAlignGeneral
    5: Range.HorizontalAlignment:=-4130; //xlHAlignJustify
    6: Range.HorizontalAlignment:=-4131; //xlHAlignLeft
    7: Range.HorizontalAlignment:=-4152; //xlHAlignRight
  end;
end;

procedure TForm1.ComboBox2Change(Sender: TObject);
//Задание вертикального выравнивания
begin
  case ComboBox2.ItemIndex of
    0: Range.VerticalAlignment:=-4107; //xlHAlignRight
    1: Range.VerticalAlignment:=-4108; //xlVAlignCenter
    2: Range.VerticalAlignment:=-4117; //xlVAlignDistributed
    3: Range.VerticalAlignment:=-4130; //xlVAlignJustify
    4: Range.VerticalAlignment:=-4160; //xlVAlignTop
  end;
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
//Включение/отключение переноса по словам
begin
  Range.WrapText:=CheckBox1.Checked;
end;

procedure TForm1.CheckBox2Click(Sender: TObject);
//Включение/отключение автоподбора ширины
begin
  Range.ShrinkToFit:=CheckBox2.Checked;
end;

procedure TForm1.Button3Click(Sender: TObject);
//Задание поворота
begin
   Range.Orientation:=SpinEdit1.Value;
end;

end.
Текст этого приложения можно взять здесь (3,9 Кб).

    На следующем шаге мы закончим изучение этого вопроса.




Предыдущий шаг Содержание Следующий шаг