Delphi: заметки программиста. Часть 3. Использование COM-серверов Microsoft Office

Листинг 1

  except 
procedure TForm1.Button1Click(Sender: TObject); 
var 
  Range,Sheet: Variant; //Для хранения    одноименных объектов 
  Row: Integer;         //Счетчик    строк 
  BegTime: TDateTime;   //Хранит    время начала работы 
begin 
  BegTime := Time; 
  if not VarIsEmpty(Excel) then 
    Exit;  //Игнорируем    щелчок, если таблица уже создана 
  //Пытаемся открыть НД 
  try 
    Books.Open; 
  except 
    ShowMessage('Невозможно открыть таблицу BOOKS.DB'); 
    Exit 
  end; 
  //Пытаемся создать главный объект    Excel.Application 
  try 
    Excel := CreateOleObject('Excel.Application') 
  
    ShowMessage('Нет доступа к серверу Excel'); 
    Exit 
  end; 
  //Изменяем форму курсора перед    длительной работой 
  Screen.Cursor := crHourGlass; 
  //Добавляем новую рабочую книгу    с одним листом: 
  Excel.SheetsInNewWorkbook := 1; 
  Excel.Workbooks.Add;  
  //Устанавливаем в Sheet ссылку    на первый лист: 
  Sheet := Excel.Workbooks[1].Sheets[1]; 
  //Устанавливаем меньшие поля страницы    
  Sheet.PageSetup.LeftMargin := 30; 
  Sheet.PageSetup.RightMargin := 30; 
  Sheet.PageSetup.TopMargin := 40; 
  Sheet.PageSetup.BottomMargin := 30; 
  //Разрешаем печать сетки 
  Sheet.PageSetup.PrintGridLines := True; 
  //Изменяем умалчиваемую ширину    колонок: 
  Range := Sheet.Columns; 
  Range.Columns[1].ColumnWidth := 4;  //Колонка    "Код" 
  Range.Columns[2].ColumnWidth := 72; //Колонка    "Название" 
  Range.Columns[3].ColumnWidth := 4;  //Колонка    "Год" 
  Range.Columns[4].ColumnWidth := 4;  //Колонка    "Страницы" 
  Range.Columns[5].ColumnWidth := 6;  //Колонка    "Цена" 
  //Изменяем высоту шрифта для всех    колонок: 
  Range.Columns.Font.Size := 8; 
  //Готовим заголовок прайс-листа:    
  Range := Sheet.Range['a1:e1'];      //Диапазон    для первого ряда 
  Range.Font.Size := 15;                 //Высота шрифта 
  Range.Font.Bold := True;               //Шрифт жирный 
  Range.Font.Italic := True;             // и    курсив 
  Range.Columns.Interior.ColorIndex := 6; //Фон желтый 
  Range.HorizontalAlignment := 3;     //Текст    по центру 
  Sheet.Cells[1,2] := 'Прайс-лист на '+DateToStr(Date); 
  //Готовим заголовки колонок: 
  Range := Sheet.Range['a2:e2']; 
  Range.Font.Size := 10; 
  Range.Font.Bold := True; 
  Sheet.Cells[2,1] := 'Код'; 
  Sheet.Cells[2,2] := 'Название/ Автор/ Издательство'; 
  Sheet.Cells[2,3] := 'Год'; 
  Sheet.Cells[2,4] := 'Страниц'; 
  Sheet.Cells[2,5] := 'Цена'; 
  pb.Show; 
  pb.Max := Books.RecordCount; 
  pb.Position := 0; 
  Row := 3; 
  while not Books.EOF do 
  begin 
    Sheet.Cells[Row,1] := BooksBookID.Value; 
    Sheet.Cells[Row,2] := BooksBName.Value+'/ '+ 
      BooksBAuthor.Value+'/Value '+BooksBPublish.Value;  
    Sheet.Cells[Row,4] := BooksBYear.Value; 
    Sheet.Cells[Row,5] := BooksBPages.Value; 
    Sheet.Cells[Row,6] := BooksBOpt.AsCurrency; 
    inc(Row); 
    pb.Position := Row-3; 
    Application.ProcessMessages; 
    Books.Next 
  end; 
  pb.Hide; 
  Screen.Cursor := crDefault; 
  Excel.Visible := True;  //Показываем    окно Excel с готовой таблицей 
  lb.Caption := 'Время работы: '+TmeToStr(Time-BegTime) 
end; 

возврат


Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует