Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 12 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Пример работы с Excel'ем.


unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  MyDir: string;     // Путь к запускаемой программе.

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  GetDir(0,MyDir);   // Определяем путь к запускаемой программе.
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  XLApp: Variant;   // Переменная в которой создаётся обьект EXCEL
  i, n: integer;
begin
// Обьект EXCEL
   XLApp:= CreateOleObject('Excel.Application');

// Чтоб не задавал вопрос о сохранении документа
   XLApp.DisplayAlerts := false;

// Новый документ
   XLApp.Workbooks.Add;        // Активны три листа.
// XLApp.Workbooks.Add(-4167); // Активен один лист.
// или открываем шаблон.
// XLApp.WorkBooks.Open(MyDir + '\Шаблон.xls');

// Делаем его видимым
   XLApp.Visible:=true;
// Когда прога уже оттестирована лучше это делать в конце,
// быстрей работает

// Даём название страничке
   XLApp.Workbooks[1].WorkSheets[1].Name:='Прайс лист 1';
   XLApp.Workbooks[1].WorkSheets[2].Name:='Прайс лист 2';
   XLApp.Workbooks[1].WorkSheets[3].Name:='Прайс лист 3';

// формат числа
 for i := 3 to 10 do
   XLApp.WorkBooks[1].WorkSheets[1].Columns[i].NumberFormat := '0,00';
   XLApp.WorkBooks[1].WorkSheets[1].Columns[1].NumberFormat := '0';
   XLApp.WorkBooks[1].WorkSheets[1].Columns[2].NumberFormat := '0';

// Таким способом можно задавать ширину колонки
   XLApp.WorkBooks[1].WorkSheets[1].Columns[1].ColumnWidth := 8.5;
   XLApp.WorkBooks[1].WorkSheets[1].Columns[2].ColumnWidth := 50;
 for i := 3 to 10 do
   XLApp.WorkBooks[1].WorkSheets[1].Columns[i].ColumnWidth := 10;

// Шрифт жирный
   XLApp.WorkBooks[1].WorkSheets[1].Rows[1].Font.Bold := true;
   XLApp.WorkBooks[1].WorkSheets[1].Rows[1].Font.Color := clBlack;
   XLApp.WorkBooks[1].WorkSheets[1].Rows[1].Font.size := 16;
   XLApp.WorkBooks[1].WorkSheets[1].Rows[1].Font.Name := 'Times new Roman';
   XLApp.WorkBooks[1].WorkSheets[1].Cells[1,3] := 'Прайс лист';

// Выравнивам по центру по вертикали
   XLApp.WorkBooks[1].WorkSheets[1].Rows[1].VerticalAlignment := 2;

// Выравнивам по центру по горизонтали
   XLApp.WorkBooks[1].WorkSheets[1].Rows[1].HorizontalAlignment := 3;

// Обьединяем ячейки
   XLApp.WorkBooks[1].WorkSheets[1].range['A1:D1'].Merge;

// Выравнивам по центру по вертикали
   XLApp.WorkBooks[1].WorkSheets[1].Rows[3].VerticalAlignment := 2;
// Выравнивам по центру по горизонтали
   XLApp.WorkBooks[1].WorkSheets[1].Rows[3].HorizontalAlignment := 3;
// Выравнивам по левому краю
   XLApp.WorkBooks[1].WorkSheets[1].Cells[3,2].HorizontalAlignment := 2;
   XLApp.WorkBooks[1].WorkSheets[1].Cells[3,3].HorizontalAlignment := 2;
// Выравнивам по правому краю
   XLApp.WorkBooks[1].WorkSheets[1].Cells[3,4].HorizontalAlignment := 4;
   XLApp.WorkBooks[1].WorkSheets[1].Rows[3].Font.Color := clBlack;
   XLApp.WorkBooks[1].WorkSheets[1].Rows[3].Font.Name := 'Times new Roman';
   XLApp.WorkBooks[1].WorkSheets[1].Rows[3].Font.size := 12;
   XLApp.WorkBooks[1].WorkSheets[1].Rows[3].Font.Bold := true;
   XLApp.WorkBooks[1].WorkSheets[1].Cells[3,1] := '¦';
   XLApp.WorkBooks[1].WorkSheets[1].Cells[3,2] := 'Наименование продукции';
   XLApp.WorkBooks[1].WorkSheets[1].Cells[3,3] := 'Ед. изм.';

// обрисовка диапазона ячеек только снизу
// Borders[1] .... [4] - это края ячейки
// ColorIndex -4142 - пустой цвет, i и n - переменные
n:=1; // Кол. ячеек по ширене начиная с колонки А зак. С+n
i:=3; // Строчка
   XLApp.WorkBooks[1].WorkSheets[1].range
        ['A' + IntToStr(i) + ':' + chr(ord('C')+n) + IntToStr(i)]
                .Borders.LineStyle := 1;
   XLApp.WorkBooks[1].WorkSheets[1].range
        ['A' + IntToStr(i) + ':' + chr(ord('C')+n) + IntToStr(i)]
                .Borders.Weight := 3;
   XLApp.WorkBooks[1].WorkSheets[1].range
        ['A' + IntToStr(i) + ':' + chr(ord('C')+n) + IntToStr(i)]
                .Borders[4].ColorIndex := 3;
   XLApp.WorkBooks[1].WorkSheets[1].range
        ['A' + IntToStr(i) + ':' + chr(ord('C')+n) + IntToStr(i)]
                .Borders[1].ColorIndex := -4142;
   XLApp.WorkBooks[1].WorkSheets[1].range
        ['A' + IntToStr(i) + ':' + chr(ord('C')+n) + IntToStr(i)]
                .Borders[2].ColorIndex := -4142;
   XLApp.WorkBooks[1].WorkSheets[1].range
        ['A' + IntToStr(i) + ':' + chr(ord('C')+n) + IntToStr(i)]
                .Borders[3].ColorIndex := 44;

// обрисовка диапазона ячеек
i:=6;
   XLApp.WorkBooks[1].WorkSheets[1].range['B8:' + chr(ord('C')+n) + IntToStr(i)].Borders.LineStyle := 1;
   XLApp.WorkBooks[1].WorkSheets[1].range['B8:' + chr(ord('C')+n) + IntToStr(i)].Borders.Weight := 2;
   XLApp.WorkBooks[1].WorkSheets[1].range['B8:' + chr(ord('C')+n) + IntToStr(i)].Borders.ColorIndex := 1;

// присвоение ячейке значения

   XLApp.WorkBooks[1].WorkSheets[1].Cells[6,4] := 'К-во';

// Поворачивать слова, писать вертикально, под углом и т.д.

   XLApp.WorkBooks[1].WorkSheets[1].Rows[10].Orientation := 15;
   XLApp.WorkBooks[1].WorkSheets[1].Rows[11].Orientation := 90;
   XLApp.WorkBooks[1].WorkSheets[1].range['A11:B11'].Orientation := 0;
for i:= 1 to 4 do
  for n:= 10 to 11 do
    XLApp.WorkBooks[1].WorkSheets[1].Cells[n,i] := 'Поворот';

end;

end.


Хотите поделиться своими творениями? Размещу с удовольствием, мыльте!

К списку статей


Есть комментарии, вопросы, ссылки на полезные ресурсы? Все это можно указать здесь:

E-mail для ответа:

Сообщение:



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS