怎么把数据导入excel中有报表样式的数据文件!

解决方案 »

  1.   

    procedure Trydc.suiButton2Click(Sender: TObject);
    var
            i,row,column:integer;
    begin
            Try
                    ExcelApplication1.Connect;
            Except
                    MessageDlg('Excel may not be installed',mtError, [mbOk], 0);
                    Abort;
            End;
            ExcelApplication1.Visible[0]:=True;
            ExcelApplication1.Caption:='Excel Application';
            ExcelApplication1.Workbooks.Add(Null,0);
            ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
            ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);
            ADOQuery1.Open;
            row:=1;
            While Not(ADOQuery1.Eof) do
            begin
                    column:=1;
                    for i:=1 to ADOQuery1.FieldCount do
                    begin
                    ExcelWorksheet1.Cells.Item[row,column]:=ADOQuery1.fields[i-1].AsString;
                    column:=column+1;
                    end;
            ADOQuery1.Next;
            row:=row+1;
            end;
    end;供你参考
      

  2.   

    同意txmjs(天地之间) 的做法,还有其他方法  
      

  3.   

    利用Excel的内置功能导入数据    
        
    typeTForm1 = class(TForm)ADOQuery1: TADOQuery;Button1: TButton;procedure Button1Click(Sender: TObject);privateFExcelBook: TExcelWorkBook;FExcelSheet: TExcelWorkSheet;FExcelApp: TExcelApplication;procedure DataSetToExcel(AFileName: string);publicconstructor Create(AOwner: TComponent); override;destructor Destroy; override;{ Public declarations }end;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.DataSetToExcel(AFileName: string);begintryFExcelApp.Visible[0] := False;tryFExcelBook.ConnectTo(FExcelApp.Workbooks.Add(EmptyParam, 0));exceptraise Exception.Create('连接到Excel文件出错,可能是没有安装Excel软件');end;FExcelSheet.ConnectTo(FExcelBook.Worksheets[1] as _WorkSheet);with FExcelSheet.QueryTables.Add(ADOQuery1.Recordset, FExcelSheet.Range['A3', EmptyParam], EmptyParam) dobeginFieldNames := False;Refresh(False);end;FExcelSheet.Columns.Item[3, EmptyParam].NumberFormatLocal := 'yyyy-mm-dd';FExcelBook.SaveCopyAs(AFileName);FExcelBook.Close(False);finallyFExcelApp.Quit;FExcelSheet.Disconnect;FExcelBook.Disconnect;FExcelApp.Disconnect;end;end;{ TForm1 }constructor TForm1.Create(AOwner: TComponent);begininherited;FExcelApp := TExcelApplication.Create(Self);FExcelBook := TExcelWorkBook.Create(Self);FExcelSheet := TExcelWorkSheet.Create(Self);end;destructor TForm1.Destroy;beginFExcelSheet.Free;FExcelBook.Free;FExcelApp.Free;inherited;end;procedure TForm1.Button1Click(Sender: TObject);beginCaption := 'begin open';with ADOQuery1 dobeginif not Active thenbeginSQL.Text := 'select * from mytable';Open;end;DataSetToExcel('c:.xls');end;end;这是利用Excel内置的功能