我添加了directorylistbox、drivecombobox、filelistbox,三个控件关联的代码如下:
procedure TForm1.DriveComboBox1Change(Sender: TObject);
begin
directorylistbox1.Drive :=drivecombobox1.Drive ;
edit1.Text :=drivecombobox1.Drive+':\' ;
end;procedure TForm1.FileListBox1Change(Sender: TObject);
begin
edit1.Text :=filelistbox1.FileName ;
end;procedure TForm1.DirectoryListBox1Change(Sender: TObject);
begin
filelistbox1.Directory :=directorylistbox1.Directory ;
edit1.Text :=directorylistbox1.Directory +filelistbox1.FileName ;
end;procedure TForm1.DirectoryListBox1Click(Sender: TObject);
begin
 edit1.Text :=directorylistbox1.Directory ;
end;
能够正常运行,现在我想读取一个选中的excel文件比如aaa.xls(这里我选择了d盘下面的aaa.xls)第二行第一列的数!代码该怎么写呢?
这是一个button下面的事件,
procedure TForm1.Button1Click(Sender: TObject);
var
i,j,s:integer;
begin
excelapp:=createoleobject('excel.application');
excelapp.workbooks.add;   //加一个新的工作簿
excelapp.workbooks.open('edit1.Text');  //打开一个已经存在的工作簿
excelapp.worksheets[1].activate;    //设置第1个工作表为活动工作表 edit2.Text:=inttostr(excelapp.cells[2,1].value);end;
这样貌似不行,不能运行!!不知道 该怎么改下,谢谢了各位 ,

解决方案 »

  1.   

    打开已存的excel
    不用创建工作簿,直接打开就是了excelapp:=createoleobject('excel.application');
    excelapp.visible:=false;
    excelapp.workbooks.open('D:\1.xls');
    edit1.Text:=excelapp.cells[2,1].value;
    excelapp.quit;
      

  2.   

    引用 
    uses ComObj;var excelapp:variant;如果数据不在第1个工作簿,就设置activate
      

  3.   

    用一个OpenDialog就好了if OpenDialog1.Execute then
      .open(OpenDialog1.FileName);OpenDialog1.FileName就是所选的文件了