代码如下:var
  oBoolean:OleVariant;
begin
  try
    ExcelApplication1.Connect;
  except
    Application.Messagebox('计算机中没有安装Excel,不能打开模板文件!','提示',MB_OK+MB_ICONEXCLAMATION);
    Exit;
  end;  try
    oBoolean:=True;
    rFile:='kkk.xlt';
    Excelworkbook1.ConnectTo(ExcelApplication1.Workbooks.Open(rFile,EmptyParam,oBoolean,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0));
    ExcelWorksheet1.ConnectTo(Excelworkbook1.ActiveSheet as _worksheet);
    ExcelApplication1.Visible[0]:=true;
  finally
    oBoolean:=Unassigned;
    ExcelWorkbook1.Disconnect;
    ExcelWorksheet1.Disconnect;
    ExcelApplication1.Disconnect;
  end;
end;  我就想打开只读的模板文件显示即可,在标题显示“[只读]”,可Excel却以这个模板给我新建了一个xls实例文档,给人的感觉是根本没打开ddd.xlt,怎么办呀?

解决方案 »

  1.   

    添加新工作簿:
    ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));
    打开已存在的工作簿:
    ExcelApplication1.Workbooks.Open (c:\a.xls
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,
        EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)
      

  2.   

    to thinkcat(思想猫) :我用的就是Open呀,看看我的代码啦~~~~
      

  3.   

    我用的过程,使用没有问题procedure TForm1.ExcelPreview(const Sheet: integer;S: String);
    var
      FPath, FName: WideString;
      FPathIdx, i, j: Integer;
      RowIDStr: String;
    begin
      try
        ExcelApp.Connect;
      except
        Application.MessageBox('Excel 调用失败,Excel可能没有安装!', '系统提示',
          Mb_IconWarning);
        Abort;
      end;
      ExcelApp.Visible[0] := True;
      ExcelApp.Caption := '数据导出';  FPathIdx := LastDelimiter('\', Application.ExeName);
      FPath := Copy(Application.ExeName, 1, FPathIdx);  //取得应用程序所在文件夹的目录.    FName := FPath + 'REPORTS\Excel.xls';  
       try
         ExcelApp.Workbooks.Open(FName, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
          EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
          EmptyParam, EmptyParam, 0);
         ExcelBook.ConnectTo(ExcelApp.Workbooks.Item[1]);
         ExcelSheet.ConnectTo(ExcelBook.WorkSheets.Item[Sheet] as _WorkSheet); //按Excel工作表的编号写入
       except                            ////.WorkSheets['Sheet2']按Excel工作表的名称写入
         Application.MessageBox('Excel 调用失败,没有找到对应模板文件!', '系统提示',Mb_IconWarning);
         exit;
       end;  try
        with ExcelSheet do
          begin
            Cells.Item[2, 2] := s;
         end;  finally
        ExcelSheet.Disconnect;
        ExcelBook.Disconnect;
        ExcelApp.Disconnect;
      end;
    end;