我是个初学者,我看了论坛里的一些,但是不是很明白,所以向你们征求一下我该怎么做
怎么样把查询到的数据导入到execl模板里
我现在有几个execl模板,表格和标头都已经设定好了,现在就是要把查询到的数据导入到这个模板中
      1、我怎么样读取execl模板
      2、怎么样把数据放入模板中

解决方案 »

  1.   

    function ExportToExcel(Header: String;
      vDataSet: TDataSet): Boolean;
    var
      I,VL_I,j: integer;
      S,SysPath: string;
      MsExcel:Variant;
    begin
      Result:=true;
      if Application.MessageBox('您确信将数据导入到Excel吗?','提示!',MB_OKCANCEL + MB_DEFBUTTON1) = IDOK then
      begin
          SysPath:=ExtractFilePath(application.exename);
          with TStringList.Create do
          try
            vDataSet.First ;
            S:=S+Header;
            add(s);
            s:='';
            For I:=0 to vDataSet.fieldcount-1 do
              begin
                If vDataSet.fields[I].visible=true then
                   S:=S+#9+vDataSet.fields[I].displaylabel;
              end;
            system.Delete(s,1,1);
            add(s);
            while not vDataSet.Eof do
            begin
              S := '';
              for I := 0 to vDataSet.FieldCount -1 do
                begin
                  If vDataSet.fields[I].visible=true then
                     S := S + #9 + vDataSet.Fields[I].AsString;
                end;
              System.Delete(S, 1, 1);
              Add(S);
              vDataSet.Next;
            end;
            Try
              SaveToFile(SysPath+'\Tem.xls');
            Except
              ShowMessage('写文件时发生保护性错误,Excel 如在运行,请先关闭!');
              Result:=false;
              exit;
            end;
          finally
            Free;
          end;
          Try
            MSExcel:=CreateOleObject('Excel.Application');
          Except
            ShowMessage('Excel 没有安装,请先安装!');
            Result:=false;
            exit;
          end;
          Try
            MSExcel.workbooks.open(SysPath+'\Tem.xls');
          Except
            ShowMessage('打开临时文件时出错,请检查'+SysPath+'\Tem.xls');
            Result:=false;
            exit;
          end;
            MSExcel.visible:=True;
            for VL_I :=1 to 4 do
            MSExcel.Selection.Borders[VL_I].LineStyle := 0;
            MSExcel.cells.select;
            MSExcel.Selection.HorizontalAlignment :=3;
            MSExcel.Selection.Borders[1].LineStyle := 0;      MSExcel.Range['A1'].Select;
          MSExcel.Selection.Font.Size :=24;      J:=0 ;
          for i:=0 to vdataset.fieldcount-1 do
              if vDataSet.fields[I].visible  then
                 J:=J+1;      VL_I :=J;
          MSExcel.Range['A1:'+chr(VL_I+64)+'1'].Select;
          MSExcel.Range['A1:'+chr(VL_I+64)+'1'].Merge;
      end
      else
        Result:=false;end;