各位大侠:
    我现在在做一个报表,报表我想用EXCEL做,到时候把数据填到相应格子中!然后打印EXCEL表格,我该如何实现!请指教!最好给出一段简单的源程序代码!!!!!!!谢谢!!!

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      i,row,column:integer;
      templete : olevariant;
    begin
      if datasource1.DataSet.IsEmpty then
        begin
          application.MessageBox('没有相应的团组资料,不能生成交接单。','注意',mb_ok+mb_iconinformation);
          abort;
        end;  Try
        ExcelApp.Connect;
      Except
        MessageDlg('Excel 2000 没有安装!', mtError, [mbOk], 0);
        Abort;
      End;  ExcelApp.Visible[0]:=True;
      ExcelApp.Caption:='交接单';  //用指定的模板文件新建一个工作薄
      templete:=appdir+'交接单.xlt';
      ExcelApp.Workbooks.Add(templete,0);  Workbook.ConnectTo(ExcelApp.Workbooks[ExcelApp.Workbooks.Count]);
      Worksheet.ConnectTo(Workbook.Worksheets[1] as _Worksheet);  //向单元格添加数据
      datasource1.DataSet.First;
      Worksheet.Cells.Item[1,1]:='第'+labelededit1.text+'号团组交接单';
      Worksheet.Cells.Item[2,1]:=statictext1.Caption;
      Worksheet.Cells.Item[3,1]:=statictext2.Caption;
      Worksheet.Cells.Item[4,1]:=statictext4.Caption;
      Worksheet.Cells.Item[5,1]:=statictext3.Caption;
      row:=8;
      While Not(datasource1.DataSet.Eof) do
        begin
          Worksheet.Cells.Item[row,1]:=trimleft(inttostr(row-7));
          column:=2;
          for i:=0 to 2 do
            begin
              Worksheet.Cells.Item[row,column]:=trim(datasource1.DataSet.fields[i].AsString);
              column:=column+1;
            end;
          datasource1.DataSet.Next;
          row:=row+1;
        end;  //左边框线
      worksheet.range['A7','E'+trim(inttostr(row-1))].borders[1].weight:=2;
      //右边框线
      worksheet.range['A7','E'+trim(inttostr(row-1))].borders[2].weight:=2;
      //上边框线
      worksheet.range['A7','E'+trim(inttostr(row-1))].borders[3].weight:=2;
      //下边框线
      worksheet.range['A7','E'+trim(inttostr(row-1))].borders[4].weight:=2;
      //将各列宽度设为自动适应
    //  worksheet.Columns.AutoFit;  //显示EXCELL 2000 的界面
      excelapp.visible[0]:=true;
      excelapp.Disconnect;
      workbook.Disconnect;
      worksheet.Disconnect;
    end;