procedure TForm1.Button2Click(Sender: TObject);
var
  str,temp:string;
  rows,columns,count,i,j:Integer;
begin
  if FileExists(Edit1.Text)=false then
  begin
    showmessage('文件不存在!');
    exit;
  end;
  Memo1.Clear;
  //ExcelApplication1.Visible[0]:=True;
  ExcelApplication1.Workbooks.Open(
    Edit1.Text,EmptyParam,true,EmptyParam,EmptyParam,
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);
  ExcelWorkbook1.ConnectTo(ExcelApplication1.ActiveWorkbook as _WorkBook);
  ExcelWorkSheet1.ConnectTo(ExcelWorkBook1.Activesheet as _Worksheet);
  rows:=ExcelWorkSheet1.UsedRange[0].Rows.count;
  columns:=ExcelWorkSheet1.UsedRange[0].Columns.Count;
  for i:=1 to rows do
  begin
    str:='';
    for j:=1 to columns do
    begin
      temp:=ExcelWorkSheet1.Cells.Item[i,j];
      str:=str+'     '+temp;
    end;
    Memo1.Lines.Add(str);
  end;
  if ExcelApplication1.Visible[0]<>true then
    ExcelApplication1.Quit;
  ExcelWorksheet1.Disconnect;
  ExcelWorkbook1.Disconnect;
  ExcelApplication1.Disconnect;
end;可是这样的速度有点慢,不知道该怎样改进,是否不应该用
ExcelApplication1.Workbooks.Open(...);呢?我只需要取数据,并不用打开Excel。另外问一下:OleContainer有什么用?是怎样用的?谢谢