Работа с ячейками. Формат отображения данных ячейки

   
На этом шаге мы рассмотрим определение и изменение формата отображения данных.

   
Формат ячейки определяется свойством NumberFormat объекта Range. Это свойство имеет строковый
тип, а форматы данных представляют собой определенным образом заданные символьные константы. Используя
свойство NumberFormat, можно изменить формат любой ячейки или области, а также прочитать значение
формата с целью его анализа для внесения изменений.

   
Определим формат ячейки, которая содержит дату. Для этого воспользуемся представленной ниже процедурой,
записанной для приложения Delphi.

procedure TForm1.Button3Click(Sender: TObject);
//Определение формата ячейки
var
  Range: Variant;
begin
  Range:=WB.ActiveSheet.Range[Edit1.Text];
  Edit2.Text:=Range.NumberFormat;
end;

   
Для заданного адреса ячейки данная процедура возвращает ее формат, что мы и видим на рисунке 1.


Рис.1. Определяем формат выбранной ячейки

   
Итак, мы определили формат ячейки, отображающей дату. Для данного случая формат представляет собой строку типа
'ДД.ММ.ГГГГ'. В строке, где обычно записывают формулы, отображается числовое значение даты без формата. Если
мы изменим формат, то само значение не изменится. Изменится только формат отображения его непосредственно в ячейке.
Изменим формат этой ячейки, чтобы отобразить год в двухзначном формате с помощью следующей процедуры.

procedure TForm1.Edit2Change(Sender: TObject);
//Изменение формата ячейки
var
  Range: Variant;
begin
  Range:=WB.ActiveSheet.Range[Edit1.Text];
  Range.NumberFormat:=Edit2.Text;
end;

   
Изменив строку для задания формата к виду 'ДД.ММ.ГГ', мы сразу обнаружим изменение на рабочем листе книги Excel
(рисунок 2).


Рис.2. Изменяем формат представления даты для выбранной ячейки

   
Как видно из рисунков 1 и 2, значение ячейки в строке формул не изменилось - изменилось только отображение этого
значения в ячейке рабочего листа. Понятно, что для данной ячейки необязательно задавать формат как дату. Если
задать другой формат, то отображение записанного в нее числового значения изменится. Значение любого формата,
обычно используемого в Excel, можно получить опытным путем. Например, установив его посредством
изменения свойства ячеек, а затем прочитав с помощью описанной ранее процедуры.

   
Попробуем поэкспериментировать с форматом ячейки, записывая в свойство NumberFormat либо известные
значения формата, либо то, что нам подсказывают опыт и интуиция. Например, зададим формат в виде строки
символов '000 000 000 000'. В результате значение ячейки будет отображено как целое число, разбитое на разряды.


Рис.3. Задание пользовательского формата для выбранной ячейки

   
Вот полный текст приложения.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComObj;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    Button3: TButton;
    Label2: TLabel;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Edit2Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
var
  E:variant;
  WB: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;
  WB:=E.WorkBooks.Item[1]; // Ссылка на рабочую книгу
end;

procedure TForm1.Button3Click(Sender: TObject);
//Определение формата ячейки
var
  Range: Variant;
begin
  Range:=WB.ActiveSheet.Range[Edit1.Text];
  Edit2.Text:=Range.NumberFormat;
end;

procedure TForm1.Edit2Change(Sender: TObject);
//Изменение формата ячейки
var
  Range: Variant;
begin
  Range:=WB.ActiveSheet.Range[Edit1.Text];
  Range.NumberFormat:=Edit2.Text;
end;

end. 

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

   
На следующем шаге мы рассмотрим формулы.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий