请教如何将数据库数据输出到Excel上?谢谢!

解决方案 »

  1.   

    在execl中录制宏,看看
    用两层循环写,外面用while not eof 写,里面用for循环写一条记录的几个字段,
      

  2.   

    我有关于Excel的封装类,我写打印程序时都是使用它,但是现在没有带在身边+
      

  3.   

    录制的宏代码在delphi中能用吗?
    我试了一次,选中两个连续单元格然后将它们合并,录制的宏代码在delphi中不能执行呀?
      

  4.   

    begin
               stringlist:= TStringList.Create;
             try
               for i := 0 to  DBGrid.DataSource.DataSet.FieldCount - 1 do
                 if DBGrid.Columns[i].Visible then
                   strLine := strLine + DBGrid.DataSource.DataSet.Fields[i].FieldName + chr(9);
               stringlist.Add(strLine);
               DBGrid.DataSource.DataSet.First;
               while( not DBGrid.DataSource.DataSet.Eof) do
                 begin               strLine :='';
                   for i := 0 to  DBGrid.DataSource.DataSet.FieldCount - 1 do
                     if DBGrid.Columns[i].Visible then
                       strLine := strLine + DBGrid.DataSource.DataSet.Fields[i].AsString + chr(9);               stringlist.Add(strLine);
                   DBGrid.DataSource.DataSet.Next;
                 end;          finally
                stringlist.SaveToFile(SaveDialog.FileName);
                stringlist.Free;
              end;
      

  5.   

    chenxc(chenxc),你干什么呀?写这一大段程序,没有看见涉及到Excel方面的问题吗?最起码有下面一段:
    var Obj: Variant;Obj := CreateOLEObj('Application.Excel');
    .....
      

  6.   

    写成的文件(用xls作后缀), 用Excel打开试试,会有用的
      

  7.   

    procedure TDMFun.SaveToExcel(Grid:TDBGrid;const FileName,SheetTitle:string);
    var
      RowNum,ColNum,RecordNum: integer;
      ExcelWorkbook1: TExcelWorkbook;
      ExcelWorksheet1: TExcelWorksheet;
      ExcelApplication1: TExcelApplication;
    begin
        try
          ExcelApplication1 := TExcelApplication.Create(Self);
          ExcelWorkbook1 := TExcelWorkbook.Create(Self);
          ExcelWorkSheet1 := TExcelWorksheet.Create(Self);
        except
          showmessage('对不起,您没有安装Excel 2000!');
          abort;
        end;
      ExcelApplication1.Connect;
      ExcelApplication1.Workbooks.Add(null,0);
      ExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks[1]);
      ExcelWorkSheet1.ConnectTo(ExcelWorkBook1.Sheets[1] as _WorkSheet);
      if Grid.DataSource.DataSet.RecordCount > 0 then
      begin
      ExcelWorkSheet1.Name:=SheetTiTle;
      ExcelworkSheet1.Cells.Clear;
      for ColNum:=0 to Grid.FieldCount-1 do
      begin
        ExcelWorkSheet1.cells.Item[2, colNum+1].font.size := 13;
        ExcelWorkSheet1.cells.Item[2, colNum+1].Font.Bold := True;
        ExcelWorkSheet1.cells.Item[2, colNum+1] :=Grid.Columns[colnum].Title.Caption;
      end;
      Grid.DataSource.DataSet.First;
      RowNum:=3;
        for RecordNum := 1 to (Grid.DataSource.DataSet.RecordCount) do
        begin
        for ColNum:=0 to Grid.FieldCount-1 do
        ExcelWorkSheet1.Cells.Item[RowNum, colNum+1]:=Grid.Fields[colNum].Asstring;
        Grid.DataSource.DataSet.Next;
        RowNum := RowNum + 1;
        end;
      end;
      ExcelWorkBook1.SaveCopyAs(FileName);
      ExcelWorkBook1.Saved[0] :=true;
      ExcelWorksheet1.Free;
      ExcelWorkbook1.Free;
      ExcelApplication1.Free;
      ShowMessage('EXCEL文件输出完成!保存在"我的文档中",文件名为:'+FileName);
    end;
      

  8.   

    上过程这样用
    procedure TF---.BBSaveExcClick(Sender: TObject);
    var StrDate,ExePath:string;
    begin
       StrDate:=FormatDateTime('YYYYMMDD',DATE);
       ExePath:=DMFun.ExePath;
       DMnaemplate.saveToExcel(DBGrid,ExePath + '---' + StrDate + '.xls',self.Caption );
    end;
    不便的地方自己改进吧!
      

  9.   

    上过程这样用
    procedure TF---.BBSaveExcClick(Sender: TObject);
    var StrDate,ExePath:string;
    begin
       StrDate:=FormatDateTime('YYYYMMDD',DATE);
       ExePath:=DMFun.ExePath;
       DMFun.saveToExcel(DBGrid,ExePath + '---' + StrDate + '.xls',self.Caption );
    end;
    不便的地方自己改进吧!