如何產生兩個Excel圖表於同一個Worksheet中? |
尚未結案
|
mnsf
初階會員 發表:104 回覆:90 積分:48 註冊:2003-11-25 發送簡訊給我 |
各位大大好,我現在有個需求是要產生兩個Excel圖表在同一個Worksheet中,其中第一個圖表的資料內容在第二個Worksheet中,第二個圖表的資料內容在第三個Worksheet,三個Worksheet順序不要緊,最重要的是要二份資料所產生的圖表要在同一個Worksheet中,但是目前我只會產生出四個Worksheet,如下列程式,請問各位大大是否有辦法做到這樣的需求?
procedure TForm1.Button1Click(Sender: TObject); var lcid,i: integer; _Template, SheetType, _Type: OleVariant; begin lcid := GetUserDefaultLCID; try ExcelApplication1.Connect; ExcelApplication1.Visible[lcid]:=True; _Template:=xlWBATWorksheet; ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(_Template, lcid)); ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet); ExcelWorksheet1.Name := 'Data-1'; except messagedlg('無法開啟Excel!',mtInformation,[mbok],0); exit; end; //第一張圖的資料來源 ExcelWorksheet1.Cells.Item[1,1]:='No'; ExcelWorksheet1.Cells.Item[2,1]:='1'; ExcelWorksheet1.Cells.Item[3,1]:='2'; ExcelWorksheet1.Cells.Item[4,1]:='3'; ExcelWorksheet1.Cells.Item[1,2]:='Value'; ExcelWorksheet1.Cells.Item[2,2]:='2'; ExcelWorksheet1.Cells.Item[3,2]:='4'; ExcelWorksheet1.Cells.Item[4,2]:='6'; //第一張圖 SheetType := TOleEnum(xlChart); ExcelChart1.ConnectTo(ExcelWorkbook1.Sheets.Add(EmptyParam, EmptyParam, 1, SheetType, lcid) as _Chart); ExcelChart1.Name := 'Chart1'; ExcelChart1.ChartType := TOleEnum(xlLineMarkers); ExcelChart1.SetSourceData(ExcelWorksheet1.Range['B2','B4'],TOleEnum(xlColumns)); //資料來源 ExcelWorksheet1.Disconnect; //第二張圖的資料來源 SheetType := TOleEnum(xlWorksheet4); ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Sheets.Add(EmptyParam, ExcelWorkbook1.Worksheets[1] as _Worksheet, 1, SheetType, lcid) as _Worksheet ); ExcelWorkSheet1.Name := 'Data-2'; ExcelWorksheet1.Cells.Item[1,1]:='No'; ExcelWorksheet1.Cells.Item[2,1]:='1'; ExcelWorksheet1.Cells.Item[3,1]:='2'; ExcelWorksheet1.Cells.Item[4,1]:='3'; ExcelWorksheet1.Cells.Item[1,2]:='Value'; ExcelWorksheet1.Cells.Item[2,2]:='3'; ExcelWorksheet1.Cells.Item[3,2]:='6'; ExcelWorksheet1.Cells.Item[4,2]:='9'; //第二張圖 SheetType := TOleEnum(xlChart); ExcelChart1.ConnectTo(ExcelWorkbook1.Sheets.Add(EmptyParam, EmptyParam, 1, SheetType, lcid) as _Chart); ExcelChart1.Name := 'Chart2'; ExcelChart1.ChartType := TOleEnum(xlLineMarkers); ExcelChart1.SetSourceData(ExcelWorksheet1.Range['B2','B4'],TOleEnum(xlColumns)); //資料來源 ExcelWorksheet1.Disconnect; ExcelWorkbook1.Disconnect; ExcelApplication1.Disconnect; end;我所希望達到的結果,如下圖 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |