Скопируйте код кода следующим образом:
вар
я, j, m, n, count1: целое число;
ул: строка;
Jdate:tdatetime;
список каналов,potBstrtime,potEstrtime,Jchannelname:строка;
Rres: логическое значение;
JSHR: двойной;
Excelid,achart1,cell1,cell2,cell3,cell4,cellMiddle,Range1,Range2,series1:вариант;
ExRowsValue, ExRowsName, ExClos: Integer;
ImagePage, dataPage: целое число;
leftPostion,topPostion,widthPostion,heightPostion:целое число;
начинать
//Создаем OLE-объект
пытаться
Excelid:=CreateOleObject('Excel.Application');
кроме
при исключении возникает исключение.Create('Невозможно создать файл Xls, подтвердите, установлен ли EXCEL')
конец;
Excelid.Visible := false //Настройки отображения Excel;
Excelid.WorkBooks.Add; //Создаем новый файл Excel;
//Не использовать предыдущие страницы Excel
Excelid.worksheets.add;
dataPage:=Excelid.Worksheets.count; //Используется как страница данных;
Excelid.worksheets.add;
ImagePage:=Excelid.Worksheets.count;
//showmessage(inttostr(dataPage));
//showmessage(inttostr(ImagePage)+'sdfg');
Jdate:=DateTimePicker1.Date;
счет1:=0;
ExRowsValue:=1 //Значение хранилища;
ExRowsName:=2; //Имя хранилища
//Получаем номер частоты
для i:=0 для CheckListBoxFQ.Items.Count-1 сделать
начинать
если CheckListBoxFQ.Checked[i] тогда
начинать
список каналов:= QCaky.FChannelList[i]+','+список каналов;
конец;
конец;
удалить (список каналов, длина (список каналов), 1);
leftPostion:=20;
топПостион:=50;
ширинаПостион: = 450;
высотаПостион:=230;
для i:=0 для CheckListBoxPOTT.Items.Count-1 сделать
начинать
если CheckListBoxPOTT.Checked[i] тогда
начинать
//Динамически генерируем номер страницы Excel
//Excelid.worksheets.add;
//sheetCount:=sheetCount+1;
//Excelid.worksheets[sheetCount].name:='Страница диаграммы'+inttostr(sheetCount);
//Создаем диаграмму здесь
если CheckListBoxPOTT.Items[i]='Весь день', то
начинать
potBstrtime:='';
potEstrtime:='';
конец
еще
начинать
potBstrtime:=QCaky.FPOTbeginList[i];
potEstrtime:=QCaky.FPOTendList[i];
конец;
Rres:=QCaky.getFQShr(Jdate,FormMain.QAreacode,channellist,potBstrtime,potEstrtime); //Получение занятости);
ExClos:=1;
пока не QCaky.FADOQueryFQ.Eof делать
начинать
Excelid.worksheets[dataPage].Activate;
Jchannelname:=QCaky.FADOQueryFQ.fieldbyname('channelname').AsString;
JSHR:=QCaky.FADOQueryFQ.fieldbyname('allshr').AsFloat;
Excelid.worksheets[dataPage].Cells[ExRowsName,ExClos].Value :=Jchannelname;
Excelid.worksheets[dataPage].Cells[ExRowsValue,ExClos].Value :=JSHR;
вкл (ExClos);
QCaky.FADOQueryFQ.Next;
конец;
{Добавьте двумерное изображение (20,50,450,230) для представления (слева, сверху, ширины, высоты)}
//achart1 := Excelid.worksheets[ImagePage].chartobjects.add(20,50,450,230);
achart1:= Excelid.worksheets[ImagePage].chartobjects.add(leftPostion,topPostion,widthPostion,heightPostion);
achart1.chart.charttype := xl3DPie; //Какой тип диаграммы создается ******** Вот круговая диаграмма.
//Устанавливаем данные по осям X и Y
ячейка1:= Excelid.worksheets[dataPage].Cells[ExRowsName,1];
ячейка2:= Excelid.worksheets[dataPage].Cells[ExRowsName,ExClos];
ячейка3:= Excelid.worksheets[dataPage].Cells[ExRowsValue,1];
ячейка4:= Excelid.worksheets[dataPage].Cells[ExRowsValue,ExClos];
Range1 := Excelid.worksheets[dataPage].Range[cell1, cell2] //Устанавливаем область значений оси координат категории диаграммы (ось X)
Range2 := Excelid.worksheets[dataPage].Range[cell3, cell4] //Установим область значений числовой координатной оси диаграммы (ось Y)
series1:= achart1.chart.seriescollection;
//series1.add (Range2,xlColumns,false); //Установим данные по оси Y;
series1.add (Range2,true); //Может использоваться для создания круговых диаграмм.
achart1.chart.seriescollection[1].name:='nihao';
//Установим формат круговой диаграммы
achart1.chart.seriescollection[1].ApplyDataLabels(xlDataLabelsShowLabelAndPercent,true,true,true);
achart1.Chart.Axes[xlCategory].CategoryNames := Range1 //Установка данных по оси X;
//series1.add (Range2,xlColumns,false); //Установим данные по оси Y;
//achart1.Chart.Axes[xlCategory].CategoryNames := Range1 //Установка данных по оси X;
//Удалим заголовок справа
achart1.Chart.Legend.delete;
//Добавляем заголовок диаграммы
achart1.Chart.HasTitle:=True;
achart1.Chart.ChartTitle.Characters.Text:='Диаграмма рейтингов';
achart1.Chart.HasLegend:=true;
achart1.Chart.Legend.Position := xlBottom;
//Описание левого нижнего индекса диаграммы
//achart1.Chart.Axes(xlValue,xlPrimary).HasTitle := True;
//achart1.Chart.Axes(xlValue,xlPrimary).AxisTitle.Characters.Text := 'Рейтинг (%)';
//Описание индекса диаграммы
//achart1.Chart.Axes(xlCategory,xlPrimary).HasTitle:=True;
//achart1.Chart.Axes(xlCategory,xlPrimary).AxisTitle.Characters.Text:='time';
ExRowsName:=ExRowsName+2;
ExRowsValue:=ExRowsValue+2;
end; //Если выбрана настройка периода
leftPostion:=20;
topPostion:=topPostion+600;
//showmessage(inttostr(dataPage));
конец;
Excelid.Visible := true;
конец;