CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

求助,有谁知道怎样在delphi中,将数据库转出为excell,打印?

楼主aritn(文痞)2006-07-02 18:13:10 在 Delphi / VCL组件开发及应用 提问

求助,有谁知道怎样在delphi中,将数据库转出为excell,打印?  
  我做了一个软件,要打印,但是我想将数据转到excell中,也就转出为固定的表格,然后再打印。有谁知道不,提供下方法,或者例子,或者有什么文章。 问题点数:100、回复次数:9Top

1 楼andyzhou1101(我是一片云(Studying Java...))回复于 2006-07-02 20:07:22 得分 0

将要打印的数据显示到dbgrid或者dbgrideh中  
  然后导出到access  
  这样就可以了  
   
  -----------------------------  
   
  USES   DbGridEhImpExp;  
  if   dbgrideh1   <>   nil   then  
        begin  
          if   saveDialog1.Execute   then  
          begin  
            SaveDBGridEhToExportFile(TDBGridEhExportAsXLS,dbgrideh1,savedialog1.filename+'.xls',true);  
            showmessage('成功导出到'+   savedialog1.filename+'.xls');  
          end;  
        end  
    else  
        showmessage('没有数据表格可供导出')   ;Top

2 楼mengjj(世界在变)回复于 2006-07-03 00:02:51 得分 0

uses  
      comobj;  
   
  以下是如何打开excel并往里面写数据并保存:  
      try  
          excel:=createoleobject('excel.application');  
          excel.visible:=false;  
          excel.DisplayAlerts:=False;  
      except  
          showmessage('打开Excel出错!');  
          exit;  
      end;  
      try  
          excel.workbooks.Open(path);  
          book:=excel.workbooks[1];  
          sheet:=book.worksheets[1];  
   
          sheet.cells.item[2,1]:='客户编号';  
          sheet.cells.item[2,2]:='客户名称';  
          sheet.cells.item[2,3]:='产品规格';  
          sheet.cells.item[2,4]:='制造工艺';  
          book.save;  
   
      except  
          ShowMessage('保存出错!');  
      end;Top

3 楼FigoZhu(谢慕安)回复于 2006-07-03 16:10:08 得分 0

markTop

4 楼peterluolaw(木瓜)回复于 2006-07-04 09:40:34 得分 0

procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
      i,row,column:integer;  
      templete   :   olevariant;  
  begin  
      if   datasource1.DataSet.IsEmpty   then  
          begin  
              application.MessageBox('没有相应的团组资料。','注意',mb_ok+mb_iconinformation);  
              abort;  
          end;  
   
      Try  
          ExcelApp.Connect;  
      Except  
          MessageDlg('Excel   2000   没有安装!',   mtError,   [mbOk],   0);  
          Abort;  
      End;  
   
      ExcelApp.Visible[0]:=True;  
      ExcelApp.Caption:='交接单';  
   
      //用指定的模板文件新建一个工作薄  
      templete:=appdir+'交接单样张.xlt';  
      ExcelApp.Workbooks.Add(templete,0);  
   
      Workbook.ConnectTo(ExcelApp.Workbooks[ExcelApp.Workbooks.Count]);  
      Worksheet.ConnectTo(Workbook.Worksheets[1]   as   _Worksheet);  
   
      //向单元格添加数据  
      datasource1.DataSet.First;  
      Worksheet.Cells.Item[1,1]:='第'+labelededit1.text+'号团组交接单';  
      Worksheet.Cells.Item[2,1]:=statictext1.Caption;  
      Worksheet.Cells.Item[3,1]:=statictext2.Caption;  
      Worksheet.Cells.Item[4,1]:=statictext4.Caption;  
      Worksheet.Cells.Item[5,1]:=statictext3.Caption;  
      row:=8;  
      While   Not(datasource1.DataSet.Eof)   do  
          begin  
              Worksheet.Cells.Item[row,1]:=trimleft(inttostr(row-7));  
              column:=2;  
              for   i:=3   to   9   do  
                  begin  
                      if   i   in   [4,5,8]   then  
                          Worksheet.Cells.Item[row,column]:=formatdatetime('YYYY"年"M"月"D"日"',datasource1.DataSet.fields[i].Asdatetime)  
                      else  
                          Worksheet.Cells.Item[row,column]:=trim(datasource1.DataSet.fields[i].AsString);  
                      column:=column+1;  
                  end;  
              datasource1.DataSet.Next;  
              row:=row+1;  
          end;  
   
      //左边框线  
      worksheet.range['A7','H'+trim(inttostr(row-1))].borders[1].weight:=2;  
      //右边框线  
      worksheet.range['A7','H'+trim(inttostr(row-1))].borders[2].weight:=2;  
      //上边框线  
      worksheet.range['A7','H'+trim(inttostr(row-1))].borders[3].weight:=2;  
      //下边框线  
      worksheet.range['A7','H'+trim(inttostr(row-1))].borders[4].weight:=2;  
      //将各列宽度设为自动适应  
      worksheet.Columns.AutoFit;  
   
      //显示EXCELL   2000   的界面  
      excelapp.visible[0]:=true;  
      excelapp.Disconnect;  
      workbook.Disconnect;  
      worksheet.Disconnect;  
  end;  
  Top

5 楼IUPRG(给我点一首周截棍的“双杰伦”)回复于 2006-07-04 09:51:14 得分 0

楼上的正解...Top

6 楼xhhero()回复于 2006-07-04 21:42:53 得分 0

upTop

7 楼hongss(笑霸王)回复于 2006-07-21 16:51:18 得分 0

UPTop

8 楼ohsee(静静)回复于 2006-08-29 00:02:35 得分 0

把数据保存为*.csv文件即可Top

9 楼grjs2004(在岸边钓不到大鱼,只好下水去摸虾米!)回复于 2006-08-29 08:29:54 得分 0

可以先作好Excel表格,就是楼主说的固定格式,然后再导入到作好的Excel表格,  
  那样就方便多了!  
   
  相关技术可以到网上搜一下就有很多的!Top

相关问题

关键词

得分解答快速导航

  • 帖主:aritn

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo