procedure TForm1.Button1Click(Sender: TObject);
var
  XLApp,XL:Variant;
  sheet,Range:Variant;
  t:integer;
  Ys: array of Integer;
  Client:string;
  Temp_Worksheet: _WorkSheet;
begin
  inherited;
    XLApp:=CreateOleobject('Excel.Application');
    XLApp.visible:=true;
    XLApp.Workbooks.add(XlWBatWorkSheet);
    fds.DataSet.First;
    Client:='csj2008';
    while not fds.DataSet.Eof do
    begin
      if Client<>fds.DataSet.FieldByName('客戶').asstring then
      begin
        XLApp.WorkSheets.add;
        XLApp.Workbooks[1].worksheets[1].name:=fds.DataSet.FieldByName('客戶').asstring;
        Range:=XLApp.workbooks[1].Worksheets[fds.DataSet.FieldByName('客戶').asstring].Columns;
        sheet:=XLApp.Workbooks[1].worksheets[fds.DataSet.FieldByName('客戶').asstring];
        sheet.cells[1,1]:='客戶';
        sheet.cells[1,2]:=fds.DataSet.FieldByName('客戶').asstring;
        sheet.cells[2,1]:='年份';
        sheet.cells[2,2]:='項目';
        sheet.cells[2,3]:='1月';
        sheet.cells[2,4]:='2月';
        sheet.cells[2,5]:='3月';
        sheet.cells[2,6]:='4月';
        sheet.cells[2,7]:='5月';
        sheet.cells[2,8]:='6月';
        sheet.cells[2,9]:='7月';
        sheet.cells[2,10]:='8月';
        sheet.cells[2,11]:='9月';
        sheet.cells[2,12]:='10月';
        sheet.cells[2,13]:='11月';
        sheet.cells[2,14]:='12月';
        t:=3;
      end;
    if copy(fds.DataSet.FieldByName('出貨月份').asstring,3,2)='03' then
    begin
      sheet.cells[3,1]:='2003';
      sheet.Range[ 'A3:A4' ].Merge(XL);
      sheet.cells[3,2]:='數量';
      sheet.cells[4,2]:='金額';
      sheet.cells[3,strtoint(copy(fds.DataSet.FieldByName('出貨月份').asstring,5,2))+2]:=fds.DataSet.FieldByName('出貨數量').asstring;
      sheet.cells[4,strtoint(copy(fds.DataSet.FieldByName('出貨月份').asstring,5,2))+2]:=fds.DataSet.FieldByName('出貨金額').asstring;
    end
    else
    if copy(fds.DataSet.FieldByName('出貨月份').asstring,3,2)='04' then
    begin
      sheet.cells[5,1]:='2004';
      sheet.Range[ 'A5:A6' ].Merge(XL);
      sheet.cells[5,2]:='數量';
      sheet.cells[6,2]:='金額';
      sheet.cells[5,strtoint(copy(fds.DataSet.FieldByName('出貨月份').asstring,5,2))+2]:=fds.DataSet.FieldByName('出貨數量').asstring;
      sheet.cells[6,strtoint(copy(fds.DataSet.FieldByName('出貨月份').asstring,5,2))+2]:=fds.DataSet.FieldByName('出貨金額').asstring;
    end
    else
    if copy(fds.DataSet.FieldByName('出貨月份').asstring,3,2)='05' then
    begin
      sheet.cells[7,1]:='2005';
      sheet.Range[ 'A7:A8' ].Merge(XL);
      sheet.cells[7,2]:='數量';
      sheet.cells[8,2]:='金額';
      sheet.cells[7,strtoint(copy(fds.DataSet.FieldByName('出貨月份').asstring,5,2))+2]:=fds.DataSet.FieldByName('出貨數量').asstring;
      sheet.cells[8,strtoint(copy(fds.DataSet.FieldByName('出貨月份').asstring,5,2))+2]:=fds.DataSet.FieldByName('出貨金額').asstring;
    end
    else
    if copy(fds.DataSet.FieldByName('出貨月份').asstring,3,2)='06' then
    begin
      sheet.cells[9,1]:='2006';
      sheet.Range[ 'A9:A10' ].Merge(XL);
      sheet.cells[9,2]:='數量';
      sheet.cells[10,2]:='金額';
      sheet.cells[9,strtoint(copy(fds.DataSet.FieldByName('出貨月份').asstring,5,2))+2]:=fds.DataSet.FieldByName('出貨數量').asstring;
      sheet.cells[10,strtoint(copy(fds.DataSet.FieldByName('出貨月份').asstring,5,2))+2]:=fds.DataSet.FieldByName('出貨金額').asstring;
    end;
    Client:=fds.DataSet.FieldByName('客戶').asstring;
    fds.DataSet.Next;
  end;
end;
把以上delphi導出到excel的資料用折線圖表顯示?謝謝!!

解决方案 »

  1.   

    年份 項目 1月 2月
    2003 數量
    金額
    2004 數量 19267 75000
    金額 90114 279000
    2005 數量 10809 14700
    金額 36033 52815這是我導出到excel的數據,我想寫語句在數據的下面顯示折線圖表
      

  2.   

    用delphi实现不可以吗?TChart可以很好的现实的, 并且可以保存成为
    文件.
      

  3.   

    因為我要存成excel文件,發給相關人員
      

  4.   

    很简单,你用Excel做个模版,先把折线图做出来,因为要从excel的单元格中读取源数据,你只需要把 源数据写到Excel中,然后图标会根据原数据自动更新
      

  5.   

    用DBChart做成图形,一样能导出