特急!关于用ExcelApplication来控制OleContainer内的Excel,满送200分!(200分)

  • 主题发起人 主题发起人 飞雪轩主
  • 开始时间 开始时间

飞雪轩主

Unregistered / Unconfirmed
GUEST, unregistred user!
我在窗体的OleContainer内打开了一个Excel表格。用如下代码可实现对表格内的数据添充
但是急需要用ExcelApplication,ExcelWorkboot,ExcelWorksheet等Servers组件来控制
OleContainer里的Excel。特请求诸位大侠提供方法或思路,最好能有代码。
以下为我在OleContainer里添充Excel单元格的方法
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtnrs, OleServer,ComObj, Excel2000, Menus, ComCtrls, ToolWin,
ImgList;

type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
Excel1: TMenuItem;
Excel2: TMenuItem;
N1: TMenuItem;
Excel3: TMenuItem;
OleContainer1: TOleContainer;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
procedure Excel2Click(Sender: TObject);
procedure Excel3Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N9Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
exapp: OleVariant;
implementation

{$R *.dfm}

procedure TForm1.Excel2Click(Sender: TObject);
begin
//显示Ole对象
OleContainer1.Show;
//从文件创建Ole对象
Olecontainer1.CreateObjectFromFile('D:/ZKP/Excel的Ole方法/aaaa.xls',False);
//激活Excel
Olecontainer1.AutoActivate:=aaGetFocus;
OleContainer1.SetFocus;
//对象变量exapp赋值
exapp:=OleContainer1.OleObject;
exapp:=exapp.application.activeworkbook.activesheet;
end;

procedure TForm1.Excel3Click(Sender: TObject);
begin
//断开Excel
OleContainer1.Close;
OleContainer1.DestroyObject;
end;

procedure TForm1.N2Click(Sender: TObject);
begin
//关闭窗体
Close;
end;

procedure TForm1.N3Click(Sender: TObject);
begin
//更改单元格内容
exapp.range['Q4']:='赵鲲鹏';
end;

procedure TForm1.N6Click(Sender: TObject);
begin
//隐藏Excel菜单
MainMenu1.SetOle2MenuHandle(0);
end;

procedure TForm1.N5Click(Sender: TObject);
begin
MainMenu1.SetOle2MenuHandle(0);
end;

procedure TForm1.N4Click(Sender: TObject);
begin
exapp.range['Z4']:='ZhaoKunPeng';
end;

procedure TForm1.N8Click(Sender: TObject);
begin
exapp.range['K4']:='123456789';
end;

procedure TForm1.N9Click(Sender: TObject);
begin
exapp.range['AH4']:=ImageList1.GetImageBitmap;
end;

end.
 
麻烦大家热列讨论一下!
 
版主何在?麻烦您帮忙看一下好了!
 
为何不在Excel OLE中填充数据后,再在Olecontainer中引入或刷新呢?
 
我的目的就是不想再打开一个Excel,而是用ExcelApplication组件控制嵌入的OleContainer
 
我已经解决这个问题了
 
哪就给点分吧:)
 
鉴于大家的反应不积极我又不想给了,怎样才能把分收回?
 
能将解决方法说一下吗?
 
这些天总是上不了大富翁。
能把你的解决方法说一下吗。或者发到我的邮箱里来。我也在弄EXCEL。
ddntyz@21cn.com.


 
多人接受答案了。
 
后退
顶部