На этом шаге мы рассмотрим изменение положения разрывов страниц.
Для создания и манипулирования вертикальными разрывами используются элементы коллекции VPageBreaks.
Методы этой коллекции идентичны методам коллекции HPageBreaks. Рассмотрим еще одно свойство элементов
коллекций VPageBreaks и HPageBreaks. Это свойство определяет положение линий разрыва и
позволяет изменять его. Свойство Location является ссылкой на ячейку. Изменение ссылки с одной на другую
ячейку приведет к изменению положения линии разрыва.
procedure TForm1.Button5Click(Sender: TObject); //Перенос линий разрывов страниц begin ST.HPageBreaks.Item[1].Location:=ST.Range['A5:A5']; ST.VPageBreaks.Item[1].Location:=ST.Range['C4:C4']; end;
Результат работы этой процедуры изображен на рисунке 2.
Рис.1. Добавлены горизонтальный и вертикальный разрывы.
Рис.2. Добавленные разрывы перенесены в другое место
Вот полный текст приложения.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComObj, Spin, ExtDlgs, ExtCtrls, ComCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Label1: TLabel; ComboBox1: TComboBox; OpenDialog1: TOpenDialog; Button4: TButton; Label2: TLabel; ListBox1: TListBox; Button5: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation var E:variant; ST: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.Button3Click(Sender: TObject); //Открытие рабочей книги begin if OpenDialog1.Execute then E.WorkBooks.Open(OpenDialog1.FileName); end; procedure TForm1.ComboBox1Change(Sender: TObject); //Переключение вида документа begin case ComboBox1.ItemIndex of 0:E.ActiveWindow.View:=1; //xlNormalView; 1:E.ActiveWindow.View:=2; //xlPageBreakPreview; end; end; procedure TForm1.Button4Click(Sender: TObject); //Добавление разрывов страницы var i:integer; begin //Получение ссылки на 1-й лист рабочей книги ST:=E.Sheets.Item[1]; //Добавление разрывов страницы ST.VPageBreaks.Add (Before:=E.ActiveSheet.Cells[10,2]); ST.HPageBreaks.Add (Before:=E.ActiveSheet.Cells[10,2]); ListBox1.Items.Clear; ListBox1.Items.Add('Горизонтальные разрывы'); for i:=1 to ST.HPageBreaks.Count do ListBox1.Items.Add(IntToStr(i)); ListBox1.Items.Add('Вертикальные разрывы'); for i:=1 to ST.VPageBreaks.Count do ListBox1.Items.Add(IntToStr(i)); ListBox1.ItemIndex:=0; end; procedure TForm1.Button5Click(Sender: TObject); //Перенос линий разрывов страниц begin ST.HPageBreaks.Item[1].Location:=ST.Range['A5:A5']; ST.VPageBreaks.Item[1].Location:=ST.Range['C4:C4']; end; end.
Текст этого приложения можно взять здесь (7,5 Кб).
Использование этой процедуры позволит изменять границы листа, выводимого на печать. После того как мы определили
области, которые будут размещаться на отдельных печатных страницах, перейдем к настройке свойств самой страницы.
На следующем шаге мы рассмотрим объект PageSetup.