我在excel中做好一个文件,比如是c:\a.xls,这个文件中有一组数据,一个chartexcel中      
 A  B   C
 1  T1  10
 2  T2  20
 3  T3  5
CHART中对应的是B1-C3,CHART中的各属性已在excel中设好,画出的是带标记两维折线,折线的每点有具体的数值。我想用一个adotable,把数据表中的值导入到excel中对应的单元,这样a.xls中的曲线就会随着数据表的数据的改变而改变。不知如何实现,请各位高手帮忙啊?200分相送我自己写了一段程序,不过只是把数据导入到新建的workbook中,没能导入到c:\a.xls中,请高手给我提示阿
procedure TForm1.Button1Click(Sender: TObject);
var
  iCount, jCount: Integer;
  XLApp:Variant;
begin
  Screen.Cursor := crHourGlass;
  try
    XLApp := CreateOleObject('Excel.Application');
  except
    Screen.Cursor := crDefault;
    Exit;
  end;
  XLApp.Workbooks.Add();
  begin
    try
        adotable1.First;
        for iCount := 0 to adotable1.FieldCount- 1 do
        XLApp.worksheets['sheet1'].Cells[1, iCount + 1]:=adotable1.Fields[iCount].FieldName;
        jCount := 1;
        while not adotable1.Eof do
        begin
          for iCount := 0 to  adotable1.FieldCount- 1 do
          XLApp.worksheets['sheet1'].Cells[jCount + 1, iCount + 1] :=adotable1.Fields[iCount].AsString;
          Inc(jCount);
          adotable1.Next;
        end;
        XlApp.Visible := True;
     except
        xlapp.quit;
     end;
  end;
  Screen.Cursor := crDefault;
end;

解决方案 »

  1.   

    XLApp.Workbooks.Add();這句有問題, 應該用connect 聯接到原來的, 
    而不是用add新增
      

  2.   

    ExcelApp, MyWorkBook: Variant;
    增加一个变量:MyWorkBook: Variant;
    以后对MyWorkBook进行操作      MyWorkBook:= ExcelApp.WorkBooks.Open('c:\a.xls');
          MyWorkBook.WorkSheets[1].Cells[1,1].Value:='aaaa';
      

  3.   

    aiirii(ari-爱的眼睛),你能否给个语句例子,connect语句,我试了不熟悉,麻烦了
      

  4.   

    xxmmmx(踢踏) :用open,为什么出现oleerror?
      

  5.   

    把数据导出到EXCEL里
    EXCEL:
    var
      ExcelApp: Variant;
      SaveFilePath, ExcelData: string;
      i, j: integer;
    begin
      try
        ExcelApp := CreateOleObject('Excel.Application');
      except
        Application.MessageBox('请检查是否安装有Microsoft Excel',
          '警告', mb_OK);
      end;  if SaveDialog1.Execute then
        SaveFilePath := SaveDialog1.FileName
      else
        Exit;  try
        ExcelApp.Visible := False;
        ExcelApp.Caption := '应用程序调用 Microsoft Excel';
        ExcelApp.WorkBooks.Add;
        ExcelApp.WorkSheets[2].Activate;
        for i := 1 to self.DBGrid1.Columns.Count do
        begin
          ExcelData := DBGrid1.Columns[i - 1].Title.Caption;
          ExcelApp.Cells[1, i].Value := ExcelData;
          application.ProcessMessages;
        end;    DBGrid1.DataSource.DataSet.DisableControls;
        DBGrid1.DataSource.DataSet.First;
        j := 2;
        while not DBGrid1.DataSource.DataSet.Eof do
        begin
          for i := 1 to DBGrid1.Columns.Count do
          begin
            application.ProcessMessages;
            ExcelData := DBGrid1.DataSource.DataSet.FieldByName(DBGrid1.Columns[i -
              1].FieldName).asstring;
            ExcelApp.Cells[j, i].Value := ExcelData;      end;
          DBGrid1.DataSource.DataSet.Next;
          j := j + 1;
        end;
        DBGrid1.DataSource.DataSet.EnableControls;
        ExcelApp.ActiveSheet.Saveas(SaveFilePath);
        ExcelApp.Quit;
        Application.MessageBox('记录输出完毕!', '信息', mb_OK);
      except
        Application.MessageBox('记录输出失败!', '警告', mb_OK);
        ExcelApp.Quit;
      end;
    end; 
      

  6.   

    MY128(wuyu),这段代码我看过.
     aiirii(ari-爱的眼睛) ,我知道你是高手,能否回答我啊?
      

  7.   

    我一直是这么使用的,要么你添加引用的单元,再试试
    uses
    OleServer, Excel2000, ComObj,
      

  8.   

    var
      ExcelApp,MyWorkBook: Variant;
    begin
        try
          ExcelApp:=CreateOleObject('Excel.Application');
          MyWorkBook:=CreateOleobject('Excel.Sheet');  //可能少了这一句
          //ExcelApp.Visible:=true;
        except
          Application.Messagebox('无法打开Xls文件,请确认已经安装EXCEL!','',
               mb_OK+mb_IconStop);
          Exit;
        end;    MyWorkBook:= ExcelApp.WorkBooks.Open('c:\a.xls',0);
      

  9.   

    有没有人用 过 ado 
      

  10.   

    procedure toexcel(fname:string;tmpname:string);
    var
    eclApp,wkBook,wkSheet:Variant;
    tq:tquery;
    s:string;
    begin
    if SelectDirectory('请选择一个文件夹,用于保存生成的Excel文件。','',fname) then 
    begin
    fname:=fname+'\';
    tq.Open;
          try
          //创建OLE对象Excel Application与 WorkBook
          eclApp:=CreateOleObject('Excel.Application');
          wkBook:=CreateOleobject('Excel.Sheet');
          except
          ShowMessage('您的机器里未安装Microsoft Excel。');
          Exit;
          end;
    end;
    tq:=tquery.Create(nil);
    //初始化tq
          
          wkBook:=eclApp.workBooks.Add;
          wkBook:=eclApp.workBooks.Open(tmpname);//打开模板
         
          Td.DataSource.DataSet.open;
          Td.DataSource.DataSet.first;
          
    while not Td.DataSource.DataSet.Eof do  //Excel控制数据库文件
    begin
    eclApp.Cells.Item[j,1].Value:=//向Excel保存数据。
    Td.DataSource.DataSet.next;
    end;wkBook.saveas(s);
    wkBook.Close;
    eclApp.Quit;
    eclApp:=Unassigned;
    showmessage('文件:'+s+' 已经存储。');
    end;