انسخ رمز الكود كما يلي:
فار
أنا، ي، م، ن، العد 1: عدد صحيح؛
سلسلة: سلسلة؛
تاريخ:tdatetime;
Channellist,potBstrtime,potEstrtime,Jchannelname:string;
ريس:منطقية؛
جشر: مزدوج؛
Excelid، achart1، cell1، cell2، cell3، cell4، cellMiddle، Range1، Range2، series1: variant؛
ExRowsValue,ExRowsName,ExClos:Integer;
ImagePage، dataPage: عدد صحيح؛
leftPostion,topPostion,widthPostion,heightPostion:integer;
يبدأ
// إنشاء كائن OLE
يحاول
Excelid:=CreateOleObject( 'Excel.Application' );
يستثني
عند الاستثناء، قم برفع Exception.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;
count1:=0;
ExRowsValue:=1; // قيمة التخزين
ExRowsName:=2; //اسم التخزين
//احصل على رقم التردد
لأني:=0 إلى CheckListBoxFQ.Items.Count-1
يبدأ
إذا CheckListBoxFQ.Checked[i] ثم
يبدأ
Channellist:= QCaky.FChannelList[i]+','+channellist;
نهاية؛
نهاية؛
حذف(قائمة القنوات,طول(قائمة القنوات),1);
leftPostion:=20;
topPostion:=50;
widthPostion:=450;
heightPostion:=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]='All day' إذن
يبدأ
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].تنشيط؛
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;
المؤتمر الوطني العراقي(إكسكلوس);
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; // ما نوع المخطط الذي تم إنشاؤه ******** هنا مخطط دائري.
// قم بتعيين بيانات المحور السيني والمحور الصادي
cell1 := Excelid.worksheets[dataPage].Cells[ExRowsName,1];
cell2 := Excelid.worksheets[dataPage].Cells[ExRowsName,ExClos];
cell3 := Excelid.worksheets[dataPage].Cells[ExRowsValue,1];
cell4 := Excelid.worksheets[dataPage].Cells[ExRowsValue,ExClos];
Range1 := Excelid.worksheets[dataPage].Range[cell1, cell2]; // تعيين منطقة القيمة لمحور إحداثيات فئة المخطط (المحور السيني)
Range2 := Excelid.worksheets[dataPage].Range[cell3, cell4]; // تعيين منطقة القيمة لمحور الإحداثيات العددي للمخطط (المحور الصادي)
series1:= achart1.chart.seriescollection;
//series1.add (Range2,xlColumns,false); // قم بتعيين بيانات المحور الصادي
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; // تعيين بيانات المحور السيني
//series1.add (Range2,xlColumns,false); // قم بتعيين بيانات المحور الصادي
//achart1.Chart.Axes[xlCategory].CategoryNames := Range1; // تعيين بيانات المحور السيني
//احذف العنوان الموجود على اليمين
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 := صحيح؛
نهاية؛