懒的写,给你转载一个例子
1. 创建一个普通Application。 2. 在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet。 3. 连接Excel 97,具体方法如下: 打开Excel97。Try  ExcelApplication1.Connect;  Except  End;  ExcelApplication1.Visible[0]:=True;增加一个Workbook。ExcelWorkbook1.ConnectTo(ExcelApplication1.  Workbooks.Add(EmptyParam,0)); 添加一个Worksheet。  varTemp_Worksheet: _WorkSheet;beginTryTemp_Worksheet:=ExcelWorkbook1.WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet;//(注意)ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);ExceptShowMessage('Failure');  End;  end;  关闭Excel.  Try  ExcelApplication1.Quit;ExcelWorksheet1.Disconnect;  ExcelWorkbook1.Disconnect;  ExcelApplication1.Disconnect;  Except  End;---- 4. 对Excel的一些操作: 选择当前Workbook的某一Worksheet.procedure TForm1.ComboBox1DropDown(Sender: TObject);var  i: Integer;begin  ComboBox1.Clear;  For i:=1 to ExcelWorkbook1.Worksheets.Count do  ComboBox1.Items.Add((ExcelWorkbook1.Worksheets.Item[i] as _WorkSheet).Name);end; procedure TForm1.ComboBox1Change(Sender: TObject);begin  ExcelWorkSheet1.ConnectTo(ExcelWorkbook1.Worksheets.Item [ComboBox1.ItemIndex+1] as _WorkSheet);  ExcelWorkSheet1.Activate;end; 选择某一Workbook:procedure TForm1.ComboBox2DropDown(Sender: TObject);var  i: Integer;beginComboBox2.Clear;if ExcelApplication1.Workbooks.Count >0 thenFor i:=1 to ExcelApplication1.Workbooks.Count doCombobox2.Items.Add(ExcelApplication1.  Workbooks.Item[i].Name);end; procedure TForm1.ComboBox2Change(Sender: TObject);beginExcelWorkSheet1.Disconnect;ExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks.Item[Combobox2.ItemIndex+1]);  ExcelWorkBook1.Activate;  ExcelWorksheet1.ConnectTo(ExcelWorkBook1.  ActiveSheet as _WorkSheet);  ExcelWorkSheet1.Activate;end; 对某一单元格进行赋值及取值。procedure TForm1.Button5Click(Sender: TObject);begin  ExcelWorksheet1.Cells.Item[SpinEdit2.Value,  SpinEdit1.Value]:=Edit1.Text;end; procedure TForm1.Button6Click(Sender: TObject);begin  Edit1.Text:=ExcelWorksheet1.Cells.Item[  SpinEdit2.Value,SpinEdit1.Value];end; 选择某一区域ExcelWorkSheet1.Range['A1','C1'].Select; 打开一个Excel文件。  if OpenDialog1.Execute then  Begin  TryExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks.Open  (OpenDialog1.FileName,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,  EmptyParam,EmptyParam,EmptyParam,EmptyParam,0));  ExcelWorkSheet1.ConnectTo(ExcelWorkBook1.Activesheet  as _Worksheet);  Except;  End;  End;

解决方案 »

  1.   

    可以这样://写入Excel
    procedure TFrmDtcx.Button2Click(Sender: TObject);
    Var i,j:integer;
        XLApp:Variant;
        WorkBook:Variant;
        Sheet:Variant;
    begin
      //尝试创建Excel对象
      try
        XLApp:=CreateOleObject('Excel.Application');
        XLApp.visible:=False;
      except
        ShowMessage('您的机器没有安装Excel');
        exit;
      end;
      //尝试打开Table.xls
      try
        workBook:=XLApp.workBooks.Open(ExtractFilePath(application.ExeName)+'\Table.xls');
      except
        ShowMessage('不能打开文件Table.xls');
        exit;
      end;     //尝试向sheet:DTCX写入数据
         try
            sheet:=XLApp.WorkBooks[1].WorkSheets['动态查询'];
            //首先清除原有数据
            sheet.Cells.ClearContents;        sheet.Cells(2,1):='行业类别:'+CBLeiBie.Text;
            sheet.Cells(3,1):='资金来源:'+CBDiQu.Text;
            sheet.Cells(3,3):='招商单位:'+CBDw.Text;
            sheet.Cells(4,1):='查询条件:'+CBLeiXing.Text+CBZhiBiao.Text+CBComp1.Text+Edit1.Text+' '+CBLogic.Text+' '+CBZhiBiao2.Text+CBComp2.Text+Edit2.Text+'万元';        
            PBar.Max:=StringGrid1.RowCount-1;
            PBar.Min:=0;
            PBar.Position:=0;
            for i:=0 to StringGrid1.RowCount-1  do
            begin
              PBar.Position:=i;
              for j:=0 to StringGrid1.ColCount-1 do
                sheet.Cells(i+6,j+1):=StringGrid1.Cells[j,i];
            end;
            PBar.Position:=0;        XLApp.WorkBooks[1].Save;
            WorkBook.Close;
            XLApp.quit;
            showMessage('数据已经输出到到Table.xls的(动态查询)表');
         except
            WorkBook.Close;
            XLApp.quit;
            showMessage('(动态查询)不能正确操作Excel文件,可能是该文件已被其他程序打开,或系统错误');
         end;end;//打印
    procedure TFrmDtcx.Button3Click(Sender: TObject);
    Var i,j:integer;
        XLApp:Variant;
        WorkBook:Variant;
        Sheet:Variant;
    begin
                    //尝试创建Excel对象
                    try
                            XLApp:=CreateOleObject('Excel.Application');
                            XLApp.visible:=False;
                    except
                            ShowMessage('您的机器没有安装Excel');
                            exit;
                    end;
                    //尝试打开Table.xls
                    try
                            workBook:=XLApp.workBooks.Open(ExtractFilePath(application.ExeName)+'\Table.xls');
                    except
                            ShowMessage('不能打开文件Table.xls');
                            exit;
                    end;
         //尝试向sheet:lzdq写入数据
         try
            sheet:=XLApp.WorkBooks[1].WorkSheets['动态查询'];
            //首先清除原有数据
            sheet.Cells.ClearContents;        sheet.Cells(2,1):='行业类别:'+CBLeiBie.Text;
            sheet.Cells(3,1):='资金来源:'+CBDiQu.Text;
            sheet.Cells(3,3):='招商单位:'+CBDw.Text;
            sheet.Cells(4,1):='查询条件:'+CBLeiXing.Text+CBZhiBiao.Text+CBComp1.Text+Edit1.Text+' '+CBLogic.Text+' '+CBZhiBiao2.Text+CBComp2.Text+Edit2.Text+'万元';        PBar.Max:=StringGrid1.RowCount-1;
            PBar.Min:=0;
            PBar.Position:=0;
            for i:=0 to StringGrid1.RowCount-1  do
            begin
              PBar.Position:=i;
              for j:=0 to StringGrid1.ColCount-1 do
                sheet.Cells(i+6,j+1):=StringGrid1.Cells[j,i];
            end;
            PBar.Position:=0;        XLApp.WorkBooks[1].Save;
            XLApp.WorkBooks[1].WorkSheets['动态查询'].PrintOut;
            WorkBook.Close;
            XLApp.quit;
         except
            WorkBook.Close;
            XLApp.quit;
            showMessage('(动态查询)不能正确操作Excel文件,可能是该文件已被其他程序打开,或系统错误');
         end;
    end;
      

  2.   

    补充:
    记得要
    uses ComObj