1.在delphi里面怎样将在database desktop中建的表导出到excel里面去?
2.我用的是bde,应该怎样做“安装程序”才能解决sql explore中的数据表别名的问题?

解决方案 »

  1.   

    用程序打开建的DB库,然后再连一个EXcel能认识的库(如MDB,DBF等),最后一条语句类似insert into dest select * form soure 的语句就差有多了吧
      

  2.   

    怎样连一个EXcel能认识的库(如MDB,DBF等)?
      

  3.   

    怎样连一个EXcel能认识的库(如MDB,DBF等)?
    简单的方法:TADOConnection,直接编辑ConnectionString,找到你要连接的数据库即可。
      

  4.   

    1、我用sql server的导入和导出程序,好用:)
    2、我用installshield6.23,绝对专业
      

  5.   

    转自 http://epro2000.myetang.com/document/savetoexecel.htm保存数据集到EXCEL文件中单元:uExcelTools
    作者: Bear
    功能:保存数据集,如TTable,TQuery,TClientDataSet等为Excel文件, 包含标题,可以只将一部分字段导出 这一点通过设置DataSet中要不导出字段的Tag值大于某一个值来处理
    原理:调用 Microsoft Excel Ole对象
    调用方式: 
    Function DataSetToExcel(
    DataSet:TDataSet;FieldTagMax:Integer;
    Visible:Boolean;ExcelFileName:String=''): Boolean;
    --------------------------------------------------------------------------------------------------}
    unit UExcelTools;
    interface
    uses
    classes, comctrls, stdctrls, windows, Dialogs, controls, SysUtils,
    Db,forms,DBClient,ComObj;
    //把数据集导入ExcelSheet的核心函数
    function DataSetToExcelSheet
    (
    DataSet :TDataSet;
    FieldTagMax :Integer; // 字段的Tag值如果大于这个值,就不导出到Excel 
    Sheet :OleVariant 
    ): Boolean; //实际使用的函数,内部调用了DataSetToExcelSheet,在外面加入UI接口和错误处理 
    function DataSetToExcel 

    DataSet :TDataSet; // 要转换的数据集 
    FieldTagMax :Integer; // 字段的Tag值如果大于这个值,就不导出到Excel 
    Visible :Boolean; // 是否让做转换工作的Excel可见 
    ExcelFileName:String='' // Excel文件名,*.xls 
    ): Boolean; implementation Function DataSetToExcelSheet(DataSet:TDataSet;FieldTagMax:Integer;Sheet:OleVariant): Boolean; 
    var 
    Row,Col,FieldIndex :Integer; 
    BK:TBookMark; 
    begin 
    Result := False; 
    if not Dataset.Active then exit; 
    BK:=DataSet.GetBookMark; 
    DataSet.DisableControls; Sheet.Activate; 
    try // 列标题 
    Row:=1; 
    Col:=1; 
    for FieldIndex:=0 to DataSet.FieldCount-1 do 
    begin 
    if DataSet.Fields[FieldIndex].Tag <= FieldTagMax then 
    begin 
    Sheet.Cells(Row,Col) :=DataSet.Fields[FieldIndex].DisplayLabel; 
    Inc(Col); 
    end; 
    end; 
    // 表内容 
    DataSet.First; 
    while Not DataSet.Eof do 
    begin 
    Row:=Row+1; 
    Col:=1; 
    for FieldIndex:=0 to DataSet.FieldCount-1 do 
    begin 
    if DataSet.Fields[FieldIndex].Tag <= FieldTagMax then 
    begin 
    Sheet.Cells(Row,Col):=DataSet.Fields[FieldIndex].AsString; 
    Inc(Col); 
    end; 
    end; 
    DataSet.Next; 
    end; Result := True; 
    finally 
    DataSet.GotoBookMark(BK); 
    DataSet.EnableControls; 
    end; 
    end; 
    Function DataSetToExcel( 
    DataSet:TDataSet;FieldTagMax:Integer; 
    Visible:Boolean;ExcelFileName:String=''): Boolean; 
    var 
    ExcelObj, Excel, WorkBook, Sheet: OleVariant; 
    OldCursor:TCursor; 
    SaveDialog:TSaveDialog; 
    begin 
    Result := False; 
    if not Dataset.Active then exit; OldCursor:=Screen.Cursor; 
    Screen.Cursor:=crHourGlass; try 
    ExcelObj := CreateOleObject('Excel.Sheet'); 
    Excel := ExcelObj.Application; 
    Excel.Visible := Visible ; 
    WorkBook := Excel.Workbooks.Add ; 
    Sheet:= WorkBook.Sheets[1]; 
    except 
    MessageBox(GetActiveWindow,'无法调用Mircorsoft Excel! '+chr(13)+chr(10)+ 
    '请检查是否安装了Mircorsoft Excel。','提示',MB_OK+MB_ICONINFORMATION); 
    Screen.Cursor:=OldCursor; 
    Exit; 
    end; Result:=DataSetToExcelSheet(DataSet,FieldTagMax,Sheet) ; 
    if Result then 
    if Not Visible then 
    begin 
    if ExcelFileName<>'' 
    then WorkBook.SaveAs(FileName:=ExcelFileName) 
    else begin 
    SaveDialog:=TSaveDialog.Create(Nil); 
    SaveDialog.Filter := 'Microsoft Excel 文件&brvbar;*.xls'; 
    Result:=SaveDialog.Execute; 
    UpdateWindow(GetActiveWindow); 
    if Result then 
    WorkBook.SaveAs(FileName:=SaveDialog.FileName); 
    SaveDialog.Free; 
    end; 
    Excel.Quit; 
    end; 
    Screen.Cursor:=OldCursor; 
    end; end. 
    注:
    1.在程序中加入UExcelTools单元;
    2.在unit1的uses列表中加入UExcelTools;
    3.在Form1上放一Table1,连接到“在database desktop中建的表”,打开表:Table1.open;
    4.调用函数
    DataSetToExcel(Table1,10000,true,'C\:Book1.xls');在Delphi5.0中测试通过