![]() |
|
|
|
|
#1
|
|||
|
|||
|
Код:
Sheet.Cells[ind+2,1].Columns.Font.Bold:=True; Sheet.Cells[ind+2,1].Columns.Font.Size:=12; Sheet.Cells[ind+2,1].Columns.Borders.LineStyle:=1; Sheet.Cells[ind+2,1]:='=SUM(A1:A14)'; Поясняю если заканчиваем на ячейке номер 14(номер ячейки = ind) то встаем на ячейку 16(ind+2). В этом случае все cчитается отлично. Если же данные закончатся на ячейки A8 допустим. То Ексель начинает ругатся на зациклиность и не чего не считает. Подскажите как это исправить. |
|
#2
|
|||
|
|||
|
Кусок кода по более
Код:
ind:=14;
DBGrid1.DataSource.DataSet.First;
c := DBGrid1.DataSource.DataSet.RecordCount;
For i:=1 to DBGrid1.DataSource.DataSet.RecordCount do
Begin
ProgressBar1.Position := (i * 100) div c;
Sheet.Cells[ind,1]:=DataModule2.QueryPRG.FieldByName('Column1').Value;
Sheet.Cells[ind,3].Columns.NumberFormat:='# #0,000';
Sheet.Cells[ind,3]:=DataModule2.QueryPRG.FieldByName('Column2').Value;
Sheet.Cells[ind,4].Columns.NumberFormat:='# #0,000';
Sheet.Cells[ind,4]:=DataModule2.QueryPRG.FieldByName('Column3').Value;
Sheet.Cells[ind,5].Columns.NumberFormat:='# #0,000';
Sheet.Cells[ind,5]:=DataModule2.QueryPRG.FieldByName('Column4').Value;
Sheet.Cells[ind,6].Columns.NumberFormat:='# #0,000';
Sheet.Cells[ind,6]:=DataModule2.QueryPRG.FieldByName('Column5').Value;
Sheet.Cells[ind,7].Columns.NumberFormat:='# #0,000';
Sheet.Cells[ind,7]:=DataModule2.QueryPRG.FieldByName('Column6').Value;
Sheet.Cells[ind,8].Columns.NumberFormat:='# #0,000';
Sheet.Cells[ind,8]:=DataModule2.QueryPRG.FieldByName('Column7').Value;
Sheet.Cells[ind,9].Columns.NumberFormat:='# #0,000';
Sheet.Cells[ind,9]:=DataModule2.QueryPRG.FieldByName('Column8').Value;
inc(ind);
DBGrid1.DataSource.DataSet.Next;
end;
Sheet.Cells[ind+1,1].Columns.Font.Bold:=True;
Sheet.Cells[ind+1,1].Columns.Font.Size:=12;
Sheet.Cells[ind+1,1]:='Среднее';
Sheet.Cells[ind+1,3].Columns.Font.Bold:=True;
Sheet.Cells[ind+1,3].Columns.Font.Size:=12;
Sheet.Cells[ind+1,3]:='=AVERAGE(C14:C37)';
Sheet.Cells[ind+1,4].Columns.Font.Bold:=True;
Sheet.Cells[ind+1,4].Columns.Font.Size:=12;
Sheet.Cells[ind+1,4]:='=AVERAGE(D14:C37)';
Sheet.Cells[ind+1,5].Columns.Font.Bold:=True;
Sheet.Cells[ind+1,5].Columns.Font.Size:=12;
Sheet.Cells[ind+1,5]:='=AVERAGE(E14:E37)';
Sheet.Cells[ind+1,6].Columns.Font.Bold:=True;
Sheet.Cells[ind+1,6].Columns.Font.Size:=12;
Sheet.Cells[ind+1,6]:='=AVERAGE(F14:F37)';
Sheet.Cells[ind+1,7].Columns.Font.Bold:=True;
Sheet.Cells[ind+1,7].Columns.Font.Size:=12;
Sheet.Cells[ind+1,7]:='=AVERAGE(G14:G37)';
ExcelApp.Columns.AutoFit;
ExcelApp.Visible:=True;
ProgressBar1.Position := 0;
end; |