使用TExcelApplication.connect时的问题(100分)

  • 主题发起人 主题发起人 li_tj
  • 开始时间 开始时间
L

li_tj

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用了TExcelApplication控件,当调用
connect时,出现错误"Interface not supported",
是在NT4.0+Delphi5.0下进行调试的.使用其他
类型的Server控件也是如此.
 
在98下行吗?
 
不行,我在98下面也是遇到同样的问题。
而且我的开发环境也是NT4,也不能换到
98下去开发啊。
 
試試這個:包你搞掂!(注意:EXCEL 最好為97版以上),如果這樣還不行,那你必須
在98下開發,運行!!!
unit Main;

interface

uses
Windows, Messages, SysUtils,
Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
XLApplication: Variant;
public
end;

var
Form1: TForm1;

implementation

uses
ComObj;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
const
{ XlSheetType }
xlChart = -4109;
xlDialogSheet = -4116;
xlExcel4IntlMacroSheet = 4;
xlExcel4MacroSheet = 3;
xlWorksheet = -4167;

{ XlWBATemplate }
xlWBATChart = -4109;
xlWBATExcel4IntlMacroSheet = 4;
xlWBATExcel4MacroSheet = 3;
xlWBATWorksheet = -4167;
var
i, j: Integer;
Sheets: Variant;
begin
XLApplication := CreateOleObject('Excel.Application');
XLApplication.Visible := True;
XLApplication.Workbooks.Add;
XLApplication.Workbooks.Add(xlWBatChart);
XLApplication.Workbooks.Add(xlWBatWorkSheet);
XLApplication.Workbooks[2].Sheets.Add(,,1,xlChart);
XLApplication.Workbooks[3].Sheets.Add(,,1,xlWorkSheet);
for i := 1 to XLApplication.Workbooks.Count do begin
ListBox1.Items.Add('Workbook: ' + XLApplication.Workbooks.Name);
for j := 1 to XLApplication.Workbooks.Sheets.Count do
ListBox1.Items.Add(' Sheet: ' + XLApplication.Workbooks.Sheets[j].Name);
end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
if not VarIsEmpty(XLApplication) then begin
XLApplication.DisplayAlerts := False; // Discard unsaved files....
XLApplication.Quit;
end;
end;

end.
 
JELLYMAN:

你说的这个办法我在Delphi4下面就用过了,
当时是没有控件用,无法在Delphi中就能得到
TExcelApplication的各种属性和方法,必须
找到它VBA的帮助来看。
而使用此控件的好处就是Delphi5自动封装了原来
类型库的内容,充分利用了CODE Insight的功能。
所以我还是很希望能在这个控件上进行编程。
 
是否开启了excel的实例?
win98 /win2000我都用过excelapplication.没事。现在我的程序就是跑在win98/excel下的
 
对,我是故意开启了一个excel实例,觉得应该考虑到
用户会开启其它excel实例的情况。
 
li_tj:
我开了一个实例,试了一下,没事
环境:
win98(ver:4.10.2222 A) office97 delphi5 update1
source:
...
procedure Tfrm.Button1Click(Sender: TObject);
{ e1 is texcelapplication }
begin
e1.Connect;
e1.Visible[0]:=true;
end;

procedure Tfrm.Button2Click(Sender: TObject);
begin
e1.Disconnect;
end;
...
 
多人接受答案了。
 
后退
顶部