Показать сообщение отдельно
  #2  
Старый 06.05.2009, 04:47
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Вот кусок из моего проекта по выводу данных из массива в Excel
Код:
procedure TSvd001.Button2Click(Sender: TObject);
var
  RepData:Variant;
  Excel,Sheet:OLEVariant;
begin

  RepData:=VarArrayCreate([1,9,1,6],varVariant);

//... Тут много кода заполняющего массив RepData

//Создаем эксель
  Excel:=CreateOleObject('Excel.Application');
  Excel.WorkBooks.Add;
	Sheet:=Excel.WorkBooks[1].ActiveSheet;
  Sheet.Range['B5:G12'].Value:=RepData;
//Поясниловка
	Sheet.Range['A5'].Value:='Общие';
	Sheet.Range['A6'].Value:='Жилфонд';
	Sheet.Range['A7'].Value:='Электроэнергия';
	Sheet.Range['A8'].Value:='Холодная вода';
	Sheet.Range['A9'].Value:='Горячая вода';
	Sheet.Range['A10'].Value:='Отопление';
	Sheet.Range['A11'].Value:='Газоснабжение';
	Sheet.Range['A12'].Value:='Итого';
	Sheet.Range['B4'].Value:='Сальдо начальное';
	Sheet.Range['C4'].Value:='Начисления';
	Sheet.Range['D4'].Value:='Льготы';
	Sheet.Range['E4'].Value:='Итого к оплате';
	Sheet.Range['F4'].Value:='Оплата';
	Sheet.Range['G4'].Value:='Итого';
  Sheet.Range['A1'].Value:='Сводный отчет';
	Sheet.Range['A2'].Value:=BoxStreet.Text+' '+BoxHN.Text+' '+BoxL.Text;
  Sheet.Range['A3'].Value:=PerStr;
  Sheet.Range['A1:G1'].Merge;
  Sheet.Range['A1:G1'].HorizontalAlignment:=$FFFFEFF4;
  Sheet.Range['A1:G1'].VerticalAlignment:=$FFFFEFF4;
  Sheet.Range['A1:G1'].Font.Bold:=True;
  Sheet.Range['A2:G2'].Merge;
  Sheet.Range['A2:G2'].HorizontalAlignment:=$FFFFEFF4;
  Sheet.Range['A2:G2'].VerticalAlignment:=$FFFFEFF4;
  Sheet.Range['A2:G2'].Font.Bold:=True;
  Sheet.Range['A3:G3'].Merge;
  Sheet.Range['A3:G3'].HorizontalAlignment:=$FFFFEFF4;
  Sheet.Range['A3:G3'].VerticalAlignment:=$FFFFEFF4;
//Настройки красоты
	Sheet.Columns['A:A'].ColumnWidth := 20;
	Sheet.Columns['B:G'].ColumnWidth := 15;
  Sheet.Range['B4:G4'].HorizontalAlignment:=$FFFFEFF4;
  Sheet.Range['B4:G4'].VerticalAlignment:=$FFFFEFF4;
	Sheet.Range['B4:G4'].WrapText:=True;
  Sheet.Range['B4:G4'].Font.Bold:=True;
  Sheet.Range['A5:A12'].Font.Bold:=True;
  Sheet.Range['A12:G12'].Font.ColorIndex:=3;
  Sheet.Range['A12:G12'].Font.Bold:=True;
  Excel.Visible:=true;
end;
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием