FAQ VCL
Работа с MS Office\Word

:: Меню ::
:: На главную ::
:: FAQ ::
:: Заметки ::
:: Практика ::
:: Win API ::
:: Проекты ::
:: Скачать ::
:: Секреты ::
:: Ссылки ::

:: Сервис ::
:: Написать ::

:: MVP ::

:: RSS ::

Яндекс.Метрика

Как установить свои разрывы страниц (HPageBreaks) в области печати?

// Constants for enum XlWindowView
type
  XlWindowView = TOleEnum;
const
  xlNormalView = $00000001;
  xlPageBreakPreview = $00000002;
  xlPageLayoutView = $00000003;

var
  E: OleVariant;

procedure TForm1.Button1Click(Sender: TObject);
begin
   // Переходим в режим разметки, чтоб заполнить коллекцию HPageBreaks
   // (хотя это и не обязательно делать)
   E.ActiveWindow.View := xlPageBreakPreview;

   // Вставляем разрыв перед 4-й строкой
   E.ActiveSheet.HPageBreaks.Add(E.ActiveSheet.Range['A4']);

   // Вставляем разрыв перед 4-ым столбцом
   E.ActiveSheet.VPageBreaks.Add(E.ActiveSheet.Range['D1']);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   // Возвращаемся в нормальный режим
   E.ActiveWindow.View := xlNormalView;
end;


Как переместить разрыв страницы в другое место?

var
  E: OleVariant;

procedure TForm1.Button4Click(Sender: TObject);
begin
   // Поставим разрыв перед 5-ой строкой
   E.ActiveSheet.HPageBreaks[1].Location := E.ActiveSheet.Range['A5'];

   // Поставим разрыв перед 5-ым столбцом
   E.ActiveSheet.VPageBreaks[1].Location := E.ActiveSheet.Range['E1'];
end;


Как узнать номер строки/столбца перед разрывом страницы?

var
  E: OleVariant;

procedure TForm1.Button1Click(Sender: TObject);
begin
   // Выводим номер строки, перед которой
   // вставлен первый (индекс 1) HPageBreak
   E.StatusBar := E.ActiveSheet.HPageBreaks[1].Location.Row;

   // Выводим номер столбца, перед которым
   // вставлен первый (индекс 1) VPageBreak
   E.StatusBar := E.ActiveSheet.VPageBreaks[1].Location.Column;
end;


Как удалить разрыв страницы?

var
  E: OleVariant;

procedure TForm1.Button1Click(Sender: TObject);
begin
   // Удаляем разрыв перед 5-ой строкой
   E.ActiveSheet.HPageBreaks[1].Delete;

   // Удаляем разрыв перед 5-ым столбцом
   E.ActiveSheet.VPageBreaks[1].Delete;
end;


Как удалить все разрывы страницы?

var
  E: OleVariant;

procedure TForm1.Button1Click(Sender: TObject);
begin
   ActiveSheet.ResetAllPageBreaks;
end;


Как перейти в страничный режим?

// Constants for enum XlWindowView
type
  XlWindowView = TOleEnum;
const
  xlNormalView = $00000001;
  xlPageBreakPreview = $00000002;
  xlPageLayoutView = $00000003;

var
  E: OleVariant;

procedure TForm1.Button1Click(Sender: TObject);
begin
   // Переходим в режим разметки, чтоб заполнить коллекцию HPageBreaks
   E.ActiveWindow.View := xlPageLayoutView;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   // Возвращаемся в нормальный режим
   E.ActiveWindow.View := xlNormalView;
end;


Как добавить колонтитулы к документу?

var
  E: OleVariant;

// Для добавления колонтитула к документу достаточно указать
// его содержание. Для изменения размера шрифта нужно добавить
// к колонтитулу управляющий символ "&" и размер шрифта.
procedure TForm1.Button1Click(Sender: TObject);
begin
   E.ActiveSheet.PageSetup.LeftFooter := '&2Левый нижний колонтитул';
   E.ActiveSheet.PageSetup.CenterFooter := '&4Центральный нижний колонтитул';
   E.ActiveSheet.PageSetup.RightFooter := '&6Правый нижний колонтитул';
   E.ActiveSheet.PageSetup.LeftHeader := '&8Левый верхний колонтитул';
   E.ActiveSheet.PageSetup.CenterHeader := '&10Центральный верхний колонтитул';
   E.ActiveSheet.PageSetup.RightHeader := '&12Правый верхний колонтитул';
end;


Как на странице вывести ее порядковый номер?

var
  E: OleVariant;

procedure TForm1.Button1Click(Sender: TObject);
begin
   E.ActiveSheet.PageSetup.RightFooter := 'Стр. &P из &N';
end;


Как запретить Excel обновлять экран?

var
  E: OleVariant;

procedure TForm1.Button1Click(Sender: TObject);
begin
   // Запрещаем обновление экрана
   E.ScreenUpdating := False;

   {какое-то длительное действие}

   // Разрешаем обновление экрана
   E.ScreenUpdating := True;
end;


Как вставить рисунок?

var
  E: OleVariant;

procedure TForm1.Button1Click(Sender: TObject);
var
  Pic: OleVariant;
begin
   E.ActiveSheet.Cells[1, 1].Select;
   Pic := E.ActiveSheet.Pictures.Insert('d:\favicon.ico'{, EmptyParam});
end;

При использовании материала - ссылка на сайт обязательна