我用OleContainer1 调用excel代码如下,能成功,但是不能隐藏菜单和工具栏,请高手指点!
网上找到的几种方法都无效
procedure TMainForm.N31Click(Sender: TObject);
var  tnames: string;
     i:Integer;
begin //测试系统是否已经安装Microsoft Excel.
    if OpenDialog1.Execute then
    begin
        tnames := opendialog1.FileName;
    end;
//.创建并显示扩展OLE类组件
OleContainer1 := TOleContainerEx.Create(nil);
OleContainer1.Parent := Panel1;
OleContainer1.Align:=alClient;
OleContainer1.allowactivedoc := true;
OleContainer1.AllowInPlace := True;
OleContainer1.AutoActivate := aaGetFocus;
OleContainer1.Anchors := [akTop,akLeft,akRight,akBottom];
OleContainer1.Visible := True;
OleContainer1.SizeMode := smClip;
OleContainer1.CreateObjectFromFile(tnames,false);
TOleContainerEx(OleContainer1).JH := True;
OleContainer1.AutoVerbMenu:=False;
OleContainer1.SetFocus;
OleContainer1.DoVerb(ovSHOW);
OleContainer1.OleObject.application.CommandBars['Standard'].Visible:=false;
OleContainer1.OleObject.application.CommandBars['Formatting'].Visible:=false;
OleContainer1.OleObject.application.CommandBars['Reviewing'].Visible:=false;
//在 OleContainer 显示 Excel 并隐藏所有菜单.
              //这一行必须,否则会提示接口错误(!??)
//  ExcelApp:= OleContainer1.OleObject.Application;
//  WorkBook:= ExcelApp.WorkBooks[1].WorkSheets[1];
//  for i:=1 to OleContainer1.OleObject.Application.Commandbars.count do
//  begin
//    OleContainer1.OleObject.Application.Commandbars[i].Visible:=false;
//  end;
//   for i:=0 to OleContainer1.OleObject.CommandBars.count-1 do
//        begin
//             OleContainer1.OleObject.CommandBars.Item[i].Set_Visible(false);
//        end;end;
如下图所示