На этом шаге мы рассмотрим горизонтальное и вертикальное выравнивание текста в ячейке.
Отображаемое значение можно разместить в ячейке Excel по-разному. Обычно способ размещения соответствует типу и величине значения ячейки. Для числовых данных текст смещен к правой границе, а для строковых - к левой границе ячейки, но бывают исключения. Исключения из правил определяются требованиями, предполагающими эффективное отображение информации для более полного ее восприятия. В таких случаях и используют свойства ячейки, позволяющие задать режимы горизонтального и вертикального выравнивания, установить режимы переноса по словам и автоподбора ширины, а также выбрать угол поворота текста.
Рассмотрим эти свойства. Следующий программный код задает режимы горизонтального и вертикального выравнивания текста по центру.
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;
На рисунке 1 представлен результат выравнивания текста по центру ячейки.
Рис.1. Результат работы приложения
Приведем полный текст приложения.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComObj; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Label1: TLabel; Edit1: TEdit; Label2: TLabel; ComboBox1: TComboBox; Label3: TLabel; ComboBox2: TComboBox; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Edit1Exit(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure ComboBox2Change(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; end.
На следующем шаге мы продолжим изучение этого вопроса.