線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1096
推到 Plurk!
推到 Facebook!

如何產生兩個Excel圖表於同一個Worksheet中?

尚未結案
mnsf
初階會員


發表:104
回覆:90
積分:48
註冊:2003-11-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-06 15:04:59 IP:61.30.xxx.xxx 未訂閱
各位大大好,我現在有個需求是要產生兩個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;
我所希望達到的結果,如下圖
系統時間:2024-05-20 1:13:49
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!