На этом шаге мы рассмотрим объединение ячеек.
Если длина текста, размещаемого в ячейке, настолько велика, что он не может быть размещен там без существенных изменений размеров ячейки, а по конкретным условиям задачи размеры строк и столбцов изменять нельзя, то следует использовать режим объединения ячеек. Объединение ячеек осуществляется установкой в значение True свойства MergeCells объекта Range, ассоциированного с областью ячеек.
procedure TForm1.CheckBox3Click(Sender: TObject); //Объединение ячеек begin Range.MergeCells:=CheckBox3.Checked; end;
На рисунке 1 приведен пример объединения группы ячеек с использованием представленной процедуры. Адрес объединенной ячейки соответствует адресу левой верхней ячейки области, в которой выполнялось объединение.
Рис..
Вот полный текст приложения.
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; CheckBox3: TCheckBox; 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); procedure CheckBox3Click(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; procedure TForm1.CheckBox3Click(Sender: TObject); //Объединение ячеек begin Range.MergeCells:=CheckBox3.Checked; end; end.
На следующем шаге мы рассмотрим задание шрифта.