用户要求程序把数据库里的数据导入excel报表,也可以把excel的数据写入数据库,
请教高手如何实现

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/2446/2446822.xml?temp=.5412104
    看这个贴吧。
      

  2.   

    procedure TForm9.Button2Click(Sender: TObject);
    var
      s:string;
      eclapp,workbook:variant;
    begin
      try
        eclApp:=CreateOleObject('Excel.Application');
      except
        Application.MessageBox('Excel 没有安装!','错误',MB_ICONERROR+mb_ok);
        abort;
      end;
      if form9.SaveDialog1.Execute  then
      begin
        s:=form9.SaveDialog1.FileName+'.xls';
        form9.ADOCommand1.ConnectionString:=form1.ADOConnection1.ConnectionString;
        form9.ADOCommand1.CommandText:='EXEC master..xp_cmdshell '+''''+'bcp clk.dbo.wzkc out  ';
        form9.ADOCommand1.CommandText:=form9.ADOCommand1.CommandText+s;    form9.ADOCommand1.CommandText:=form9.ADOCommand1.CommandText+' -c -q  -U"sa" -P"sa"'+'''' ;    form9.ADOCommand1.Execute;    eclapp.workbooks.open(s);
        eclapp.activesheet.rows[1].insert;
        eclapp.cells[1,1].value:='年';
        eclapp.cells[1,2].value:='月';
        eclapp.cells[1,3].value:='材料编码';
        eclapp.cells[1,4].value:='材料类别';
        eclapp.cells[1,5].value:='材料名称';
        eclapp.cells[1,6].value:='型号规格';
        eclapp.cells[1,7].value:='计量单位';
        eclapp.cells[1,8].value:='实际单价';
        eclapp.cells[1,9].value:='库存数量';
        eclapp.cells[1,10].value:='库存金额';    eclapp.visible:=true;
        eclapp.WorkBooks.close;
        eclapp.quit;  end;
    end;
      

  3.   

    组件ExcelExport,很好的Free组件,功能强大