CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

delphi 与 excel 编程!(急!!!!!!!!!!!)

楼主candy_wang(阳光)2002-05-27 21:29:05 在 Delphi / VCL组件开发及应用 提问

我用delphi编程,将excel的数据写入到delphi的stringgrid中,代码如下:  
  form1.OpenDialog1.Execute;  
            try  
                form1.ExcelApplication1.Connect;  
              except  
                  showmessage('no   excel');  
                  abort;  
              end;  
              form1.ExcelApplication1.Visible[0]:=true;  
              form1.ExcelApplication1.Caption:='weilig';  
   
                try  
                  form1.ExcelApplication1.Workbooks.Open(form1.OpenDialog1.FileName,null,null,null,null,null,null,null,null,null,null,null,null,0);  
                except  
                    form1.ExcelApplication1.Disconnect;  
                    form1.ExcelApplication1.Quit;  
                    exit;  
                end;  
   
                form1.ExcelWorkbook1.ConnectTo(form1.ExcelApplication1.Workbooks[1]);  
                form1.ExcelWorksheet1.ConnectTo(form1.ExcelApplication1.Worksheets[1]as   _worksheet);  
   
           
   
            for   i:=1   to   1000   do//最大取值1000  
              for   j:=1   to   6   do  
                begin  
        *             if   trim(form1.excelworksheet1.cells.item[i+1,1])<>''   then  
                    begin            
                      stringgrid1.rowCount:=i+1;  
                        stringgrid1.Cells[j,i]:=ExcelWorksheet1.Cells.Item[i+1,j];  
                  end  
                  else  
                begin  
   
                      ExcelApplication1.Disconnect;  
                      ExcelApplication1.Quit;  
      我是用星号的那一行来控制是否退出程序的,但是如果excel表中的那行没有时就是if语句为false时,却会发生错误,系统会因为类型转换出错而报错!到底是什么问题,怎样解决呀?各位大哥help! 问题点数:20、回复次数:3Top

1 楼netlib(河外孤星)回复于 2002-05-27 21:37:48 得分 0

用Try可以完成。  
   
  要么你找找form1.excelworksheet1.cells下有没有count或itemcount类似的属性。Top

2 楼lxpbuaa(桂枝香在故国晚秋)回复于 2002-05-27 21:54:13 得分 20

将你最后一段改为:  
  var   Col,Row:   Integer;  
   
  begin  
      for   Row   :=   1   to   ExcelWorksheet1.Cells.Row   do  
          for   Col   :=   1   to   ExcelWorksheet1.Cells.Column   do  
      begin  
          if   Trim(ExcelWorksheet1.Cells.Item[i+1,1])<>''   then  
          begin  
              stringgrid1.rowCount:=i+1;  
              stringgrid1.Cells[j,i]:3DExcelWorksheet1.Cells.Item[i2B1,j];  
          end   else  
          begin  
              ExcelApplication1.Disconnect;  
              ExcelApplication1.Quit;0D         end;  
      end;  
  end;  
   
       
   
  —————————————————————————————————  
  MaximStr   :=   '宠辱不惊,看庭前花开花落,去留无意;  
                            毁誉由人,望天上云卷云舒,聚散任风。';  
  if   Not   Assigned(I)   then  
      I   :=   TI.Create(Nil);  
  I.Maxim   :=   MaximStr;  
  I.Explain   :=   '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';  
  I.Desire   :=   '加不加分随你';  
  —————————————————————————————————  
           
   
  Top

3 楼candy_wang(阳光)回复于 2002-05-28 21:44:11 得分 0

没有itemcount,colcount这些普遍属性,而且如果用上面的ExcelWorksheet1.Cells.Row   的方法,会因为row属性返回的是range值,无法和integer值变换而出错!到底怎办呀?高手们帮忙呀!Top

相关问题

  • delphi编程!(急!)
  • excel,sql server,asp编程!(急!!!!!!!!!)
  • delphi编程!
  • delphi编程!
  • delphi编程!
  • delphi编程!
  • 关于Delphi的Isapi编程,急用!!!
  • 我想用vb编程打开excel.急....
  • delphi的word编程
  • Delphi 网络编程?

关键词

  • 属性
  • excel
  • delphi
  • null
  • excelapplication
  • excelworksheet
  • stringgrid
  • cells
  • disconnect
  • quit

得分解答快速导航

  • 帖主:candy_wang
  • lxpbuaa

相关链接

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

广告也精彩

反馈

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