DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: hcwong1993
今日帖子: 40
在线用户: 9
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 zjhekeshi (zjhekeshi) ★☆☆☆☆ -
普通会员
2004/3/22 8:42:22
标题:
帮帮忙,这段代码究竟出错在哪里 浏览:1391
加入我的收藏
楼主: 导出为excel表:
procedure TForm3.Excel4Click(Sender: TObject);   //将联合查询的结构转为excel表
var       xlsFilename :string;
         eclApp,WorkBook :variant ;
         a_filedNo,i,j :integer;
begin
         a_filedNo :=Form3.DBGrid4.FieldCount  ;
         xlsFileName :='关于学生成绩基本信息.xls';

         try
                 eclApp :=CreateOleObject('Excel.Application');
                 WorkBook :=CreateOleObject('Excel.Sheet');
         except
                 showmessage('您的系统没有安装MS EXCEL');
                 exit;
         end;

         try
                   WorkBook :=eclApp.workBooks.add ;
                   for i :=1 to  a_FiledNo do      //转化字段名;
                    begin
                           //eclApp.cells(1,i) :=Form3.DBGrid4.Columns[i-1].Title.caption ;
                           eclApp.cells(1,i) :=Form3.DBGrid4.Fields[i-1].FieldName ;
                    end;

                   Form3.DBGrid4.DataSource.DataSet.First ;
                   for i :=1 to  Form3.a_recno   do    //Form3.a_recno 

                     begin
                           for j :=1 to  a_filedNo do  //转化一个记录
                             begin
                                     eclApp.cells(i+1,j) :=Form3.DbGrid4.Fields[j-1].Value ;
                             end;
                           Form3.DBGrid4.DataSource.DataSet.Next ;
                     end;
               try
                    WorkBook.saveas(ExtractFilePath(Application.ExeName )+xlsFileName);
                    WorkBook.close;
                    showmessage('保存EXECL文件成功,路径为:'+ExtractFilePath(Application.ExeName )+xlsFileName);
                 except
                          showmessage('保存文件出错');
                 end;
     

        except
                showmessage('不能正确操作EXECL文件,可能该文件已经被其他程序占用或系统错误');
                WorkBook.close;
                eclApp.quit;
                eclApp :=Unassigned;
        end;
end;
说明:Form3.a_recno   是在显示dbgrid4的时候统计出在dbgrid4 中共有多少 条记录!~~~~ 

注:
excel表导入数据库代码:
str 是一个全局变量,存储当前所选择的excel表的名称;
FieldCount 也是全局变量,记录当前数据库表中共有多少列;


运行时出现 eclApp :=CreateOleObject('Excel.Application');
           WorkBook :=CreateOleObject('Excel.Sheet');
中的CreateOleObject定义不清的错误,请问如何改正
----------------------------------------------
-
作者:
男 xjr888 (arming) ★☆☆☆☆ -
盒子活跃会员
2004/3/22 8:57:19
1楼: uses ?
----------------------------------------------
-
作者:
男 zjhekeshi (zjhekeshi) ★☆☆☆☆ -
普通会员
2004/3/22 9:02:00
2楼: : uses ? 
----------------------------------------------
 能否清楚点,USES  什么啊
----------------------------------------------
-
作者:
男 minche (异杰) ★☆☆☆☆ -
盒子活跃会员
2004/3/22 9:26:44
3楼: 你有没有在uses中加comobj单元
----------------------------------------------
-和大家一起学习,一起进步!!!
作者:
男 xjr888 (arming) ★☆☆☆☆ -
盒子活跃会员
2004/3/22 9:33:28
4楼: 把你这个单元的 uses 部分 贴出来看一下
----------------------------------------------
-
作者:
男 songchangge (scg66) ★☆☆☆☆ -
盒子活跃会员
2004/3/22 11:32:37
5楼: 在uses中加comobj单元后,并修改此句:
eclApp.cells(i+1,j) :=Form3.DbGrid4.Fields[j-1].Value

eclApp.cells(i+1,j) :=Form3.DbGrid4.Fields[j-1].asstring;
试试看有没有帮助?
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行85.9375毫秒 RSS