如何用delphi7.0读取Excel2003中的内容?(100)

  • 主题发起人 主题发起人 wangyb32
  • 开始时间 开始时间
W

wangyb32

Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手:我初学delphi,如何用delphi7.0读取Excel2003中的内容?要哪些控件?如何设置他们的属性?有没有详细的过程?急!!
 
之前做过一些Excell的控制。有兴趣给我邮件。znxia@foxmail.com
 
需用到opendialog、ExcelApplication1、ExcelWorkbook1、ExcelWorksheet1以上均为Delphi自带的组件,另需uses excelxp;单元procedure TForm1.Button1Click(Sender: TObject);//导入excelvar i,j:integer;beginopendialog1.InitialDir:=ExtractFileDir(paramstr(0));//文件的打存放初始路径opendialog1.Execute;TryExcelApplication1.Connect;//EXCEL应用程序ExceptMessageDlg('Excel may not be installed',mtError, [mbOk], 0);Abort;End;ExcelApplication1.Visible[0]:=True;ExcelApplication1.Caption:='Excel Application';try excelapplication1.Workbooks.Open(opendialog1.FileName,null,null,null,null,null,null,null,null,null,null,null,null,0);//打开指定的EXCEL 文件exceptbeginExcelApplication1.Disconnect;//出现异常情况时关闭ExcelApplication1.Quit;showmessage('请选择EXCEL电子表格!');exit;end;end;ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);//ExcelWorkbook1与Eexcelapplication1建立连接ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);//Excelworksheet1与Excelworkbook1建立连接 //开始从EXCEL中取数,放到stringgrid1中,取完数后关闭EXCELfor i:=1 to 1000 do//最大取值1000for j:=1 to 6 dobeginif trim(excelworksheet1.cells.item[i+1,1])<>'' thenbeginstringgrid1.rowCount:=i+1;stringgrid1.Cells[j,i]:=ExcelWorksheet1.Cells.Item[i+1,j];endelsebeginlabel3.caption:=inttostr(i-1);ExcelApplication1.Disconnect;ExcelApplication1.Quit;exit;end;end;end;
 
谢谢高手!
 
不要用第三方控件 ,没那个必要,直接用变体类型处理, excelid:variant; if not OpenDialog1.Execute then exit; sfilename:=OpenDialog1.FileName ; excelid:=CreateOleObject('excel.application'); excelid.visible:=false; excelid.workbooks.open(sfilename);对数据读取。。。excelid.workbooks[1].worksheets[1].cells[3,3]这个方法很好用的。
 
后退
顶部