CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  非技术区

操作excel

楼主weikunlun()2006-03-13 18:43:07 在 Delphi / 非技术区 提问

如何从a.xls中的sheet1复制内容到b.xls中的sheet2中?  
  还有怎么取得sheet的名字?  
   
  谢谢! 问题点数:20、回复次数:2Top

1 楼PrettyMurphy(土豆)回复于 2006-03-14 10:14:53 得分 20

我原来写的一个函数,你可以参考一下:  
   
   
  ////////////////////////////////////////////////////////////////////  
  //相关说明:                                                                                                               //  
  //     EApp为EXCEL对象                                                                                               //  
  //     EBook为EXCEL文件对象                                                                                     //  
  //     ESheet为EXCEL文件页面对象                                                                           //  
  //     EBook.Worksheets.Count                                   描述页数                               //  
  //     EBook.Worksheets[页]   as   _Worksheet           描述指定页                           //  
  //     ESheet.UsedRange[LocID].Columns.Count     描述当前页列数                   //  
  //     ESheet.UsedRange[LocID].Rows.Count           描述当前页行数                   //  
  //     ESheet.Cells.Item[行,列].Value                   描述当前页指定单元格值   //  
  ////////////////////////////////////////////////////////////////////  
   
      function   GetXLS(aFile:String):TStrings;                                           //检索EXCEL文件.  
      var   EApp:   TExcelApplication;  
              EBook:   TExcelWorkbook;  
              ESheet:   TExcelWorksheet;  
              LocID:LCid;  
            //   ExcelApp:Variant;  
              reStr:TStrings;  
              i,j,s,t:Integer;  
              tmpStr:TStrings;  
      begin  
          reStr:=TStringList.Create;  
          tmpStr:=TStringList.Create;;  
          LocID:=GetUserDefaultLCID;  
          //LocID:=0;  
          EApp:=TExcelApplication.Create(nil);  
          EBook:=TExcelWorkbook.Create(nil);  
          ESheet:=TExcelWorksheet.Create(nil);  
          Try  
              Try  
                  Try  
                      EApp.Connect;  
                      EApp.Visible[LocID]:=False;  
                  Except  
                            //不做处理.  
                          LogDataList.Add('***警告***:['+TimeToStr(Time())+']'+'在提取:'+aFile+'时,EXCEL   OLE对象出现异常,已忽略!');  
                  end;  
                  EApp.Workbooks.Open(aFile,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,LocID);  
                  EBook.ConnectTo(EApp.Workbooks.Item[1]   as   _Workbook);  
                  //EBook.ConnectTo(EApp.Workbooks.Open(aFile,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,LocID)   as   _Workbook);  
              Except  
                  //EApp.Quit;                                                       //出问题再次尝试连接  
                  EApp.Disconnect;  
                  EApp.Free;  
                  LogDataList.Add('***警告***:['+TimeToStr(Time())+']'+'在提取:'+aFile+'时,EXCEL   OLE对象连接异常,已中断重新连接!');  
                  Try  
                      EApp:=TExcelApplication.Create(nil);           //重构连接.  
                      LocID:=GetUserDefaultLCID;  
                      EApp.Connect;  
                      EApp.Visible[LocID]:=False;  
                      EApp.Workbooks.Open(aFile,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,LocID);  
                      EBook.ConnectTo(EApp.Workbooks.Item[1]   as   _Workbook);  
                  Except                                                               //再次发生错误,则退出.  
                      LogDataList.Add('***错误***:['+TimeToStr(Time())+']'+'在提取:'+aFile+'时出现严重错误:被调用的对象已与其客户断开连接,已跳过!');  
                      MessageBox(Application.Handle,PChar('在提取:'+aFile+'文件时出错,单击确认跳过!'),'错误',MB_ICONERROR+MB_OK);  
                      Result:=reStr;  
                      Exit;  
                  end;  
              end;  
              for   s:=1   to   EBook.Worksheets.Count   do   begin  
                  ESheet.ConnectTo(EBook.Worksheets[s]   as   _Worksheet);                           //设定指定页  
                  MainFrm.RefInit(ESheet.UsedRange[LocID].Rows.Count*ESheet.UsedRange[LocID].Columns.Count);  
                  for   i:=1   to   ESheet.UsedRange[LocID].Rows.Count   do                               //循环行  
                      for   j:=1   to   ESheet.UsedRange[LocID].Columns.Count   do   begin         //循环列  
                          if   StopFlag   then   begin  
                              Result:=reStr;  
                              MainFrm.RefInitB;  
                              Exit;  
                          end;  
                           
                          tmpStr:=IsPhone(ESheet.Cells.Item[i,j].Value);  
                          for   t:=0   to   tmpStr.Count-1   do   begin  
                              //reStr.Add(tmpStr.Strings[t]);  
                              MainFrm.RefSystemA(tmpStr.Strings[t]);  
                          end;  
                      end;  
                  ESheet.Disconnect;  
              end;  
   
          Except  
              ON   E:Exception   DO   LogDataList.Add('***错误***:['+TimeToStr(Time())+']'+'在提取:'+aFile+'时,读取单元格出现错误:'+E.Message+',已跳过!');  
              //ON   E:Exception   DO   ShowMessage(E.Message);  
          end;  
          ESheet.Disconnect;  
          EBook.Disconnect;  
          EApp.Quit;  
          EApp.Disconnect;  
          Result:=reStr;  
          reStr.Free;  
      end;Top

2 楼biao_227(飙)回复于 2006-03-14 11:34:13 得分 0

楼主信誉值好像有问题啊.  
  Top

相关问题

  • Excel 操作
  • VB excel操作???
  • 操作excel?
  • EXCEL操作
  • C# 操作Excel
  • Delphi操作Excel
  • EXCEL的操作??
  • ADO操作Excel
  • Excel操作问题????
  • 操作Excel问题

关键词

  • excel
  • 文件
  • esheet
  • locid
  • 描述
  • ebook
  • tstrings
  • worksheet
  • sheet
  • 对象

得分解答快速导航

  • 帖主:weikunlun
  • PrettyMurphy

相关链接

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

广告也精彩

反馈

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