| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1777 人关注过本帖
标题:dbgrid导出execl问题
只看楼主 加入收藏
ccc111
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2007-1-11
收藏
 问题点数:0 回复次数:4 
dbgrid导出execl问题
我有如下代码,可以将dbgrid导出为execl,可是sql的字段都是英文,能不能导出相应的中文,谢谢
procedure   SaveToExecl(DBGrid1:   TDBGrid);   
  var   
      s:TStringList;   
      str:string;   
      i:Integer;   
      ASaveDialog   :   TSaveDialog;   
      tofileName   :   string;   
  begin   
      str:='';   
      tofileName   :=   '';   
      DBGrid1.DataSource.DataSet.DisableControls;   
      try   
              for   i:=0   to   DBGrid1.DataSource.DataSet.FieldCount-1   do   
                  str:=str+DBGrid1.DataSource.DataSet.fields[i].DisplayLabel+char(9);   
              str:=str+#13;   
              if   not   DBGrid1.DataSource.DataSet.IsEmpty   then   
              begin   
                      DBGrid1.DataSource.DataSet.First;   
                      while   not(DBGrid1.DataSource.DataSet.eof)   do   begin   
                          for   i:=0     to   DBGrid1.DataSource.DataSet.FieldCount-1   do   
                              str:=str+DBGrid1.DataSource.DataSet.Fields[i].AsString+char(9);   
                              str:=str+#13;   
                              DBGrid1.DataSource.DataSet.next;   
                      end;//end   while   
              end;   
      finally   
              DBGrid1.DataSource.DataSet.EnableControls;   
      end;   
        s:=TStringList.Create;   
        try   
              s.Add(str);   
              ASaveDialog   :=   TSaveDialog.Create(nil);   
              try   
                      ASaveDialog.Title   :=   '保存文件';   
                      ASaveDialog.Filter   :=   'Microsof   Excel   (*.xls)|*.xls';   
                      if   ASaveDialog.Execute   then   
                      begin   
                              tofileName   :=   ASaveDialog.FileName;   
                              if   pos(uppercase('.xls'),uppercase(tofileName))   =   0   then   
                                      tofileName   :=   tofileName   +'.xls';   
                              if   Fileexists(tofileName)   then
                              begin
                                      if   MessageDLG('文件已存在,确认覆盖?',mtWarning,[mbOK,mbCancel],0)   =   mrOk   then
                                      begin   
                                              Deletefile(tofileName);   
                                              s.SaveToFile(tofileName);//保存
                                              Application.MessageBox('数据导出完毕!','信息',MB_OK);
                                      end;
                            end   
                            else   
                            begin   
                                    s.SaveToFile(tofileName);//保存
                                    Application.MessageBox('数据导出完毕!','信息',MB_OK+MB_ICONINFORMATION);   
                            end;   
                      end;   
              finally   
                    FreeAndNil(ASaveDialog);   
              end;   
        finally   
              FreeAndNil(s);   
        end;
搜索更多相关主题的帖子: dbgrid execl 
2008-10-06 09:26
xu2000
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:51
帖 子:3890
专家分:56
注 册:2006-4-8
收藏
得分:0 
把每个字段的DisplayLabel改成中文。

我会拿出我全部的钱财,以保你衣食无忧。我会献出我所有的智慧,以助你一帆风顺。我会想到所有的笑语,以令你展眉开颜。我会挤出最长的时间,以使你终生幸福。        [本人原创的结婚宣言]
2008-10-06 11:51
ccc111
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2007-1-11
收藏
得分:0 
谢谢,解决了
2008-10-06 13:11
lubi
Rank: 1
等 级:禁止访问
帖 子:43
专家分:0
注 册:2008-10-14
收藏
得分:0 
这样导出的速度太慢了.

中国最先进的MES http://www.
2008-10-15 12:52
快速回复:dbgrid导出execl问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.079384 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved