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

excel 要如何加入新的chart 和sheet

尚未結案
zonhon
一般會員


發表:4
回覆:5
積分:1
註冊:2004-09-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-16 17:44:33 IP:211.23.xxx.xxx 未訂閱
請問各位先進: 我在寫excel加入新的chart 和sheet時一直有問題, 是否有高人能指點一下該如何寫才能正確執行??? 下面是我寫Worksheets.Add的方式: procedure TWinForm.Button1_Click(sender: System.Object; e: System.EventArgs); var objApp:Excel.Application; objSheet:Excel._Worksheet; begin objApp :=Excel.ApplicationClass.Create; objApp.Workbooks.Add(1); objSheet:= objApp.Workbooks[1].Worksheets[1]; objApp.Worksheets.Add(0,objApp.Workbooks[1].Worksheets [1],1,xlWorksheet); end;
chiehmin
高階會員


發表:13
回覆:134
積分:134
註冊:2002-05-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-16 22:46:43 IP:211.75.xxx.xxx 未訂閱
uses
  Excel, System.Reflection;
...
...    procedure TWinForm.Button1_Click(sender: System.Object; e: System.EventArgs);
var
  objApp: Excel.Application;
  xlsWorkSheet: WorkSheet;
  xlsWorkBook: WorkBook;
  xlsChartObjects: ChartObjects;
  xlsChartObject: ChartObject;
  xlsChart: Chart;
  args7: Array[0..10] of TObject;
  range5: Range;
  array5: Array[0..1, 0..9] of Double;
  i: Integer;
begin
  objApp :=Excel.ApplicationClass.Create;
  objApp.Visible := True;      //加入新sheet
  xlsWorkBook := objApp.Workbooks.Add(1);
  xlsWorkSheet := xlsWorkBook.Worksheets[1];
  objApp.Worksheets.Add(Missing.Value, xlsWorkSheet, 1, XlSheetType.xlWorksheet);      xlsWorkSheet.Activate;
  //加入新chart
  xlsChartObjects := xlsWorkSheet.ChartObjects(Missing.Value);
  xlsChartObject := xlsChartObjects.Add(10, 60, 420, 210);
  xlsChart := xlsChartObject.Chart;
  range5 := xlsWorkSheet.get_Range('A1', 'J2');
  For i := 0 to 9 do
  begin
    array5[0, i] := i;
    array5[1, i] := i * 2;
  end;
  range5.Value2 := array5;
  args7[0] := range5;
        args7[1] := XlChartType.xl3DColumn;
        args7[2] := Missing.Value;
        args7[3] := XlRowCol.xlRows;
        args7[4] := 0;
        args7[5] := 0;
        args7[6] := true;
        args7[7] := '標題';
        args7[8] := String('X');
        args7[9] := String('Y');
        args7[10] := Missing.Value;
  TypeOf(xlsChart).InvokeMember('ChartWizard', BindingFlags.InvokeMethod, nil, xlsChart, args7);      MessageBox.Show('完成!!!');
end;
發表人 - chiehmin 於 2004/09/16 23:12:26
zonhon
一般會員


發表:4
回覆:5
積分:1
註冊:2004-09-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-21 16:23:24 IP:211.23.xxx.xxx 未訂閱
args7[0] := range5; args7[1] := XlChartType.xl3DColumn; args7[2] := Missing.Value; args7[3] := XlRowCol.xlRows; args7[4] := 0; args7[5] := 0; args7[6] := true; args7[7] := '標題'; args7[8] := String('X'); args7[9] := String('Y'); args7[10] := Missing.Value; TypeOf(xlsChart).InvokeMember('ChartWizard', BindingFlags.InvokeMethod, nil, xlsChart, args7); =================================================================== 請問一下這是否可以非陣列的方法寫入, 以類似excel 巨集加入chart的方式 來增加???????? 還有在excel9.0~11.0中的不同版本是否所使用的方式都是不同的???? 因為我將寫好的程式(excel 11.0)換到另一台電腦(excel 9.0)上已經 寫好的方法都不能用, 是excel版本問題還是我電腦問題或者是Delphi 有問題???? 發表人 - zonhon 於 2004/09/21 22:13:06
chiehmin
高階會員


發表:13
回覆:134
積分:134
註冊:2002-05-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-21 22:16:55 IP:211.75.xxx.xxx 未訂閱
=================================================================== 請問一下這是否可以非陣列的方法寫入, 以類似excel 巨集加入chart的方式 來增加????????    我是參考C#範例修改的..所以不知道有沒有其它方法可以增加 還有在excel9.0~11.0中的不同版本是否所使用的方式都是不同的???? 因為我將寫好的程式(excel 11.0)換到另一台電腦(excel 9.0)上已經 寫好的方法都不能用, 是excel版本問題還是我電腦問題或者是Delphi 有問題???? 是否有把Excel.Dll一併複製到另一台電腦上呢?? 不知道是不是這個問題.. 發表人 - chiehmin 於 2004/09/21 22:18:42
系統時間:2024-05-21 14:17:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!