
05.09.2011, 23:53
|
 |
Модератор
|
|
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
|
|
Я один раз, правда давно очень, сейчас глянул дату модуля - 2006 год.
вот код который по разному работал с оптимизацией и без нее:
Код:
for i:=1 to SummArrayPoint do
begin
Excel.Sheets.Add;
HouseSheet:=Excel.WorkBooks[1].ActiveSheet;
HouseSheet.Name:=MainData[SummData[i,21],3]+MainData[SummData[i,21],4];
ExcelHeader(HouseSheet,AccGroupName,MesN,1);
HouseSheet.Range['A3:T3']:=TableHeader;
if i=SummArrayPoint then
lenHouseArr:=arrlen-SummData[i,21]
else
lenHouseArr:=SummData[i+1,21]-SummData[i,21];
HouseData:=0;
HouseData:=VarArrayCreate([1,lenHouseArr,1,20],varVariant);
for n:=1 to 20 do
for m:=1 to lenHouseArr do
HouseData[m,n]:=MainData[SummData[i,21]+m-1,n];
HouseSheet.Range['A4:T'+Trim(IntToStr(lenHouseArr+3))].Value:=HouseData;
for n:=1 to 20 do
SummHouse[1,n]:=SummData[i,n];
HouseSheet.Range['A'+Trim(IntToStr(lenHouseArr+4))+':T'+Trim(IntToStr(lenHouseArr+4))]:=SummHouse;
HouseSheet.Range['A'+Trim(IntToStr(lenHouseArr+4))].Value:='ИТОГО';
HouseSheet.Range['A'+Trim(IntToStr(lenHouseArr+4))+':F'+Trim(IntToStr(lenHouseArr+4))].Merge;
HouseSheet.Range['A'+Trim(IntToStr(lenHouseArr+4))+':F'+Trim(IntToStr(lenHouseArr+4))].HorizontalAlignment:=$FFFFEFC8;
HouseSheet.Range['A'+Trim(IntToStr(lenHouseArr+4))+':F'+Trim(IntToStr(lenHouseArr+4))].VerticalAlignment:=$FFFFEFF4;
HouseSheet.Range['A'+Trim(IntToStr(lenHouseArr+4))+':T'+Trim(IntToStr(lenHouseArr+4))].Font.Bold:=True;
HouseSheet.Cells.Select;
HouseSheet.Cells.EntireColumn.AutoFit;
HouseSheet.Range['A4'].Select;
Excel.ActiveWindow.FreezePanes:=True;
// HouseSheet.PageSetup.PrintTitleRows:='$3:$3';
end;
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.
Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
|