我现在想在DELPHI当中运用命令直接打开EXCEL文件如何实现,
是EXCEL直接运行起来打开文件的那种。
请贴出一个小例子,谢谢!

解决方案 »

  1.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
      excelapp:variant;类似问题自己搜索一下,太多答案了。
    begin
      try
        excelapp:=CreateOleObject('Excel.application');
        excelapp.workbooks.open('c:\book1.xls');
        excelapp.worksheets[1].activate;
        excelapp.visible:=true;
      finally
        exit;
      end;
    end;注意,在uses包含ComObj。
      

  2.   

    修正:类似问题自己搜索一下,太多答案了。procedure TForm1.Button2Click(Sender: TObject);
    var
      excelapp:variant;
    begin
      try
        excelapp:=CreateOleObject('Excel.application');
        excelapp.workbooks.open('c:\book1.xls');
        excelapp.worksheets[1].activate;
        excelapp.visible:=true;
      finally
        exit;
      end;
    end;注意,在uses包含ComObj
      

  3.   

    procedure TfrmSG.Button1Click(Sender: TObject);  //uses Excel2000 , ComObj
    var
      pc_i:integer;
      xlapp,sheet: variant;
      WBK: OleVariant;
    begin
      xlapp := createoleobject('excel.application');
      xlapp.visible := True;   //Excel是否可见
      if Trim(Edit1.Text)='' then
      begin
        Application.MessageBox('文件名不能为空','警告',MB_OK);
        Exit;
      end;
      WBK := xlapp.workbooks.Open(Edit1.Text);
      sheet := xlapp.workbooks[1].worksheets['sheet1'];
      sheet.Cells.SpecialCells(XlCellTypeLastCell,EmptyParam).Activate;  //showmessage(IntToStr(xlapp.ActiveCell.Row));
      //showmessage(IntToStr(xlapp.ActiveCell.Column));
      //excelworksheet2.UsedRange[1].Rows.Count));
      //excelworksheet2.UsedRange[1].Columns.Count));
      pc_i:=1;
      Edit2.Text := sheet.cells[pc_i,1];     //写入的话用 sheet.cells[pc_i,1] := Edit2.Tex;
      WBK.Close(SaveChanges := True);
      xlapp.Quit;
    end;