在网上看见一段代码,可以打开并显示excel,如下
EApp:=CreateOleObject('Excel.Application');
Windows.SetParent(EApp.HWND,ScrollBox1.Handle);
EApp.Workbooks.Open('D:\s.xls');
EApp.Visible:=true;原来是显示在panel上,但是excel显示不全,又不能调位置,我就换成了 scrollbox
这样依旧显示不全,而且看不到滚动条,我设置autoScroll := false也不可以
这个问题该怎样解决。。
EApp:=CreateOleObject('Excel.Application');
Windows.SetParent(EApp.HWND,ScrollBox1.Handle);
EApp.Workbooks.Open('D:\s.xls');
EApp.Visible:=true;原来是显示在panel上,但是excel显示不全,又不能调位置,我就换成了 scrollbox
这样依旧显示不全,而且看不到滚动条,我设置autoScroll := false也不可以
这个问题该怎样解决。。
var
Eapp : OleVariant;
rect : TRect;
begin
pnl1.Parent := ScrollBox1;
pnl1.Width := 2000; //先放大
pnl1.Height := 2000;
EApp:=CreateOleObject('Excel.Application');
Windows.SetParent(EApp.HWND,pnl1.Handle);
ShowWindow(EApp.Hwnd,SW_SHOWMAXIMIZED); //把Excel最大化
GetWindowRect( EApp.Hwnd , rect); //得到Excel的长宽
EApp.Workbooks.Open('D:\s.xls');
EApp.Visible:=true;
pnl1.Width := rect.Right - rect.Left ; //设置Panel 刚好套住Excel
pnl1.Height :=rect.Bottom - rect.Top ;
end;大概就是这样的, 代码可能有错. 只给个思路
但是当打开excel时,delphi 所有的控件都不能动了,按钮不能按,滚动条不能滚
没有设置enabled的地方,
重新做了下,还是这样,不知是不是打开了excel的原因