高手帮忙啊 怎样生成*.xls , *.mdb ,*.ppt文件 ( 积分: 10 )

  • 主题发起人 主题发起人 xgwzw
  • 开始时间 开始时间
X

xgwzw

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Button6Click(Sender: TObject);
var
Excel,Sheet,MyworkBook1:Variant;
I,J,X,Y:Integer;
begin
Try
Excel:=UnAssigned;
Excel:=CreateOleObject('Excel.Application');
Excel.Visible:=False;
Excel.WorkBooks.Add;
excel.worksheets.add;
Except
showmessage('本机未安装EXCEL,本功能必须在安装有EXCEL的电脑上才能运行!');
Abort;
End;
MyworkBook1:=Excel.workBooks[1];
MyWorkBook1.saveas('D:/12.xls');
MyWorkBook1:= UnAssigned;
Excel:=UnAssigned;
end;
 
procedure TForm1.Button6Click(Sender: TObject);
var
Excel,Sheet,MyworkBook1:Variant;
I,J,X,Y:Integer;
begin
Try
Excel:=UnAssigned;
Excel:=CreateOleObject('Excel.Application');
Excel.Visible:=False;
Excel.WorkBooks.Add;
excel.worksheets.add;
Except
showmessage('本机未安装EXCEL,本功能必须在安装有EXCEL的电脑上才能运行!');
Abort;
End;
MyworkBook1:=Excel.workBooks[1];
MyWorkBook1.saveas('D:/12.xls');
MyWorkBook1:= UnAssigned;
Excel:=UnAssigned;
end;
 
Var
i : integer;
ts : tstrings;
s : String;
Begin
adoquery1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + 数据库名 + ';Persist Security Info=False';
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from 表名');
adoquery1.Active := true;

ts := tstringlist.Create;
Try
While adoquery1.Eof Do
Begin
s := '';
For i := 0 To adoquery1.FieldCount - 1 Do
s := s + adoquery1.Fields.Fields.AsString + #9;
ts.Add(s);
End;
// ts.SaveToFile('文件名.xls');
Finally
freeandnil(ts);
End;
End;
 
While adoquery1.Eof Do
应为
While not adoquery1.Eof Do
 
xgwzw,你的做法基本正确,只是程序有几处小问题,修改即可:
procedure TForm1.Button6Click(Sender: TObject);
var
Excel,Sheet,MyworkBook1:Variant;
I,J,X,Y:Integer;
begin
Try
//Excel:=UnAssigned; //Excel是局部变量,该条语句不须要
Excel:=CreateOleObject('Excel.Application');
Excel.Visible:=False;
Excel.WorkBooks.Add;
//excel.worksheets.add; //WorkBook缺省就有3个Sheet,再add就变成4个了,该句不须要
Except
showmessage('本机未安装EXCEL,本功能必须在安装有EXCEL的电脑上才能运行!');
Abort;
End;
MyworkBook1:=Excel.workBooks[1];
MyWorkBook1.saveas('D:/12.xls');
MyWorkBook1:= UnAssigned;
Excel.Quit;//Excel进程退出
//Excel:=UnAssigned;//这句不须要
end;
 
Excel.Quit;这句很关键,否则Excel进程未退出,你创建的文件就被锁定了,所以是只读的。
 
younghat;thank you !
怎样生成*.mdb 和*.ppt *.doc 类似的怎么写
Excel:=CreateOleObject('Excel.Application');
 
CreateOleObject('Access.Application');
CreateOleObject('PowerPoint.Application');
CreateOleObject('Word.Application');
很简单啊笨笨
 
to: younghat大侠
我怎么不能生成mdb文件啊
怎么改上面的代码
 
to: younghat大侠
可以另外加分的
 
CreateOleObject('Access.Application');//只能打开新的access,但还没有保存啊
调用ole对像的saveto方法就可以了,想在哪生成mdb都可以
 
to:mercymei
提示错误啊
说savaas saveto不被支持
 
不要叫我大侠,真不好意思:)
生成mdb程序更简单,save都不用调,详细如下:
procedure TForm1.Button1Click(Sender: TObject);
var
Access:Variant;
I,J,X,Y:Integer;
begin
Try
Access:=CreateOleObject('Access.Application');
Access.Visible:=False;
Access.CreateAccessProject('c:/abc.mdb')
Except
showmessage('本机未安装Access,本功能必须在安装有Access的电脑上才能运行!');
Abort;
End;
Access.DoCmd.Quit;
end;

加分就不用了,我很少提问题,要那么多分也没什么用,你自己省着点用吧:P
 
to :younghat
高手就是高手 向你学习
 
to :younghat 生成的数据库 提示:不可识别的数据库格式
用ado连接测试不成功 怎么处理
 
把这一行
Access.CreateAccessProject('c:/abc.mdb');
改成
Access.NewCurrentDatabase('c:/acc.mdb');
就行了
 
thanks younghat
测试通过:)
 
接受答案了.
 
后退
顶部