Шаг 194.
Автоматизация Microsoft Excel. Печать.
Добавление разрыва страницы

    На этом шаге мы рассмотрим алгоритм добавления разрыва страницы.

    Используя свойства и методы коллекций HPageBreaks и VPageBreaks листа рабочей книги, мы получаем доступ и возможность манипулировать разметкой листа. Элементы этих коллекций содержат информацию о разрывах страниц и позволяют изменять или удалять их. Добавление новых элементов в коллекцию осуществляется с помощью метода Add, аргументом которого является ссылка на ячейку, до которой вставляется разрыв. Следующая процедура позволяет добавить разрыв в точке расположения ячейки с координатами 10:2, после чего загрузить в компонент ListBox1 номера всех элементов коллекции, в том числе и вновь созданного.

procedure TForm1.Button4Click(Sender: TObject);
//Добавление разрыва страницы
var
   i:integer;
begin
  //Получение ссылки на 1-й лист рабочей книги
  ST:=E.Sheets.Item[1];
  ST.HPageBreaks.Add (Before:=E.ActiveSheet.Cells[10,2]);
  ListBox1.Items.Clear;
  for i:=1  to ST.HPageBreaks.Count do
    ListBox1.Items.Add(IntToStr(i));
  ListBox1.ItemIndex:=0;
end;

    Для задания точки разрыва можно использовать не только ссылку на ячейку Cells, но и ссылку на область ячеек Range. Тогда третий оператор описанной выше процедуры будет выглядеть так:

    ST.HPageBreaks.Add(Before:=E.ActiveSheet.Range[Range.Text]);

    Здесь объект Range.Text задает адрес области ячеек. Результат добавления новой точки разрыва страницы в обоих случаях будет одним и тем же (рисунок 1).


Рис.1. Добавляем горизонтальный разрыв

    Приведем полный текст приложения.

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;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure Button4Click(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.HPageBreaks.Add (Before:=E.ActiveSheet.Cells[10,2]);
  ListBox1.Items.Clear;
  for i:=1  to ST.HPageBreaks.Count do
    ListBox1.Items.Add(IntToStr(i));
  ListBox1.ItemIndex:=0;
end;

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

    На следующем шаге мы рассмотрим изменение положения разрыва страницы.




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