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

Листинг 2

procedure TForm1.Button1Click(Sender: TObject); 
var 
  Row: Integer; 
  BegTime: TDateTime; 
begin 
  BegTime := Time; 
  Screen.Cursor := crHourGlass; 
  // Создаем новую рабочую книгу с одним листом 
  Excel.SheetsInNewWorkbook[0] := 1; 
  Excel.Workbooks.Add(EmptyParam,0); 
  //Устанавливаем шрифт для всех колонок 
  Excel.Columns.Font.Size := 8; 
  {В этом месте я хотел установить ширину колонок и полей, используя 
  операторы типа 
  Excel.Columns.Item[EmptyParam,1].ColumnWidth := 4; 
  и т.д. Увы, это мне сделать не удалось. При использовании интерфейсов    заимствование "в лоб" 
  приемов работы с вариантами чаще всего заканчивается неудачей. 
  //Заголовок прайс-листа: 
  Excel.Cells.Item[1,2].Value := 'Прайс-лист на '+DateToStr(Date); 
  Excel.Cells.Item[1,2].Font.Size := 12; 
  Excel.Cells.Item[1,2].Font.Bold := True; 
  Excel.Cells.Item[1,2].Font.Italic := True; 
  //Заголовки колонок: 
  Excel.Cells.Item[2,1].Value := 'Код'; 
  Excel.Cells.Item[2,2].Value := 'Название'; 
  Excel.Cells.Item[2,3].Value := 'Год'; 
  Excel.Cells.Item[2,4].Value := 'Страниц'; 
  Excel.Cells.Item[2,5].Value := 'Цена'; 
  Excel.Cells.Item[2,1].Font.Bold := True; 
  Excel.Cells.Item[2,2].Font.Bold := True; 
  Excel.Cells.Item[2,3].Font.Bold := True; 
  Excel.Cells.Item[2,4].Font.Bold := True; 
  Excel.Cells.Item[2,5].Font.Bold := True; 
  Books.Open; 
  Row := 3; 
  pb.Max := Books.RecordCount; 
  pb.Position := 0; 
  pb.Show; 
  while not Books.Eof do 
  begin 
    Excel.Cells.Item[Row,1].Value := BooksBookID.Value; 
    Excel.Cells.Item[Row,2].Value := BooksBName.Value; 
    Excel.Cells.Item[Row,3].Value := BooksBYear.Value; 
    Excel.Cells.Item[Row,4].Value := BooksBPages.Value; 
    Excel.Cells.Item[Row,5].Value := BooksBOpt.AsCurrency; 
    inc(Row); 
    pb.Position := Row-3; 
    Application.ProcessMessages; 
    Books.Next 
  end; 
  Books.Close; 
  Screen.Cursor := crDefault; 
  pb.Hide; 
  //Показываем окно Excel 
  Excel.Visible[0] := True; 
  lb.Caption := 'Время работы: '+TimeToStr(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
Популярные статьи
КомпьютерПресс использует