คัดลอกรหัสรหัสดังต่อไปนี้:
var
i,j,m,n,count1:จำนวนเต็ม;
STR:สตริง;
เจเดท:tdatetime;
รายการช่อง potBstrtime, potEstrtime, Jchannelname:string;
Rres:บูลีน;
JSHR:สองเท่า;
Excelid,achart1,cell1,cell2,cell3,cell4,cellMiddle,Range1,Range2,series1:variant;
ExRowsValue,ExRowsName,ExClos:จำนวนเต็ม;
ImagePage, dataPage: จำนวนเต็ม;
ตำแหน่งซ้าย,ตำแหน่งบนสุด,ตำแหน่งความกว้าง,ความสูงตำแหน่ง:จำนวนเต็ม;
เริ่ม
//สร้างวัตถุ OLE
พยายาม
Excelid:=CreateOleObject( 'Excel.Application' );
ยกเว้น
ในข้อยกเว้นทำให้เกิดข้อยกเว้น สร้าง ('ไม่สามารถสร้างไฟล์ Xls ได้ โปรดยืนยันว่าติดตั้ง EXCEL หรือไม่')
จบ;
Excelid.Visible := false; //การตั้งค่าการแสดงผลของ Excel
Excelid.WorkBooks.Add; //สร้างไฟล์ Excel ใหม่
//อย่าใช้หน้าก่อนหน้าของ Excel
Excelid.worksheets.เพิ่ม;
dataPage:=Excelid.Worksheets.count; //ใช้เป็นหน้าข้อมูล
Excelid.worksheets.เพิ่ม;
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);
ตำแหน่งซ้าย:=20;
ตำแหน่งบนสุด:=50;
ความกว้างตำแหน่ง:=450;
ความสูงตำแหน่ง:=230;
สำหรับ i:=0 ถึง CheckListBoxPOTT.Items.Count-1 ทำ
เริ่ม
ถ้า CheckListBoxPOTT.Checked[i] แล้ว
เริ่ม
// สร้างหมายเลขหน้า Excel แบบไดนามิก
//Excelid.worksheets.เพิ่ม;
//sheetCount:=sheetCount+1;
//Excelid.worksheets[sheetCount].name:='Chart page'+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); //รับข้อมูลการเข้าใช้
ไม่รวม:=1;
ในขณะที่ไม่ใช่ QCaky.FADOQueryFQ.Eof ทำ
เริ่ม
Excelid.แผ่นงาน[dataPage].เปิดใช้งาน;
Jchannelname:=QCaky.FADOQueryFQ.fieldbyname('channelname').AsString;
JSHR:=QCaky.FADOQueryFQ.fieldbyname('allshr').AsFloat;
Excelid.worksheets[dataPage].Cells[ExRowsName,ExClos].Value :=Jchannelname;
Excelid.แผ่นงาน[dataPage].เซลล์[ExRowsValue,ExClos].Value :=JSHR;
Inc(ExClos);
QCaky.FADOQueryFQ.ถัดไป;
จบ;
{เพิ่มรูปภาพสองมิติ (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].เซลล์[ExRowsName,1];
เซลล์2 := Excelid.worksheets[dataPage].เซลล์[ExRowsName,ExClos];
cell3 := Excelid.worksheets[dataPage].เซลล์[ExRowsValue,1];
cell4 := Excelid.worksheets[dataPage].เซลล์[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:=จริง;
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; //หากเลือกการตั้งค่าช่วงเวลา
ตำแหน่งซ้าย:=20;
ตำแหน่งบนสุด:=ตำแหน่งบนสุด+600;
//showmessage(inttostr(dataPage));
จบ;
Excelid.Visible := จริง;
จบ;