我在做一个Excel报表的东西,
用一个Button来实现很多连锁功能:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
x :Integer;
begin
x:=1;
if not FileExists(ComboBox1.Text+'.xls') then
begin
CreatExcel(ComboBox1.Text);
end
else
begin
OpenExcel(ComboBox1.Text);
while v.Cells[x,1].Value<>'' do
x:=x+1;
end; v.Cells[x,1].Value :=bcle.Text;
v.Cells[x,2].Value :=lere.Text;
v.Cells[x,3].Value :=cle.Text;
v.Cells[x,4].Value :=bcde.Text;
v.Cells[x,5].Value :=dere.Text;
v.Cells[x,6].Value :=cde.Text;
v.Cells[x,7].Value :=bcee.Text;
v.Cells[x,8].Value :=eere.Text;
v.Cells[x,9].Value :=cee.Text; SaveExcel(ComboBox1.Text);
end;这里的OpenExcel是自己写的函数:
procedure OpenExcel(Wjm : String);
begin
try
v:= CreateOleObject('Excel.Application');
v.Visible := True;
v.Workbooks.Open(MyPath+Wjm+'.xls');
except
ShowMessage('初始化Excel失败,可能没装Excel,或者其他错误;请重起再试。');
v.DisplayAlerts := false;
v.Quit;
exit;
end;
end;还有SaveExcel也是
procedure SaveExcel(SaveFile : String);
begin
v.WorkBooks[1].Saveas(MyPath+SaveFile+'.xls');
end;而这在执行过程中,出现错误提示:
1、OpenExcel执行时,其实,Excel文件已经打开了,但是还是出现错误提示。
2、SaveExcel执行时,提示说SaveAs参数数目不够。这是怎么回事?具体的在这里的Excel函数是怎么应用的?
谢谢!
用一个Button来实现很多连锁功能:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
x :Integer;
begin
x:=1;
if not FileExists(ComboBox1.Text+'.xls') then
begin
CreatExcel(ComboBox1.Text);
end
else
begin
OpenExcel(ComboBox1.Text);
while v.Cells[x,1].Value<>'' do
x:=x+1;
end; v.Cells[x,1].Value :=bcle.Text;
v.Cells[x,2].Value :=lere.Text;
v.Cells[x,3].Value :=cle.Text;
v.Cells[x,4].Value :=bcde.Text;
v.Cells[x,5].Value :=dere.Text;
v.Cells[x,6].Value :=cde.Text;
v.Cells[x,7].Value :=bcee.Text;
v.Cells[x,8].Value :=eere.Text;
v.Cells[x,9].Value :=cee.Text; SaveExcel(ComboBox1.Text);
end;这里的OpenExcel是自己写的函数:
procedure OpenExcel(Wjm : String);
begin
try
v:= CreateOleObject('Excel.Application');
v.Visible := True;
v.Workbooks.Open(MyPath+Wjm+'.xls');
except
ShowMessage('初始化Excel失败,可能没装Excel,或者其他错误;请重起再试。');
v.DisplayAlerts := false;
v.Quit;
exit;
end;
end;还有SaveExcel也是
procedure SaveExcel(SaveFile : String);
begin
v.WorkBooks[1].Saveas(MyPath+SaveFile+'.xls');
end;而这在执行过程中,出现错误提示:
1、OpenExcel执行时,其实,Excel文件已经打开了,但是还是出现错误提示。
2、SaveExcel执行时,提示说SaveAs参数数目不够。这是怎么回事?具体的在这里的Excel函数是怎么应用的?
谢谢!
V: Variant;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
x :Integer;
begin
x:=1;
if not FileExists(ComboBox1.Text+'.xls') then
begin
CreatExcel(ComboBox1.Text);
end
else
begin
OpenExcel(ComboBox1.Text);
while v.Cells[x,1].Value<>'' do
x:=x+1;
end; v.Cells[x,1].Value :=bcle.Text;
v.Cells[x,2].Value :=lere.Text;
v.Cells[x,3].Value :=cle.Text;
v.Cells[x,4].Value :=bcde.Text;
v.Cells[x,5].Value :=dere.Text;
v.Cells[x,6].Value :=cde.Text;
v.Cells[x,7].Value :=bcee.Text;
v.Cells[x,8].Value :=eere.Text;
v.Cells[x,9].Value :=cee.Text; SaveExcel(ComboBox1.Text);
end;这里的OpenExcel是自己写的函数:
procedure OpenExcel(Wjm : String);
begin
try
v:= CreateOleObject('Excel.Application');
v.Visible := True;
v.Workbooks.Open(MyPath+Wjm+'.xls');
except
ShowMessage('初始化Excel失败,可能没装Excel,或者其他错误;请重起再试。');
v.DisplayAlerts := false;
v.Quit;
exit;
end;
end;还有SaveExcel也是
procedure SaveExcel(SaveFile : String);
begin
v.WorkBooks[1].Saveas(MyPath+SaveFile+'.xls');
end;
eclApp,wkBook,wkSheet:Variant;
s:string;
colname:string;
begin
if SelectDirectory('请选择一个文件夹,用于保存生成的Excel文件。','',fname) then
begin
fname:=fname+'\';//fname是要保存的目标Excel
try
//创建OLE对象Excel Application与 WorkBook
eclApp:=CreateOleObject('Excel.Application');
wkBook:=CreateOleobject('Excel.Sheet');
except
ShowMessage('您的机器里未安装Microsoft Excel。');
Exit;
end;
wkBook:=eclApp.workBooks.Add;
wkBook:=eclApp.workBooks.Open('tmp.excel');//打开模版
//这里用你的代码
s:=fname+'.xls';
wkBook.saveas(s);
wkBook.Close;
eclApp.Quit;
eclApp:=Unassigned;
showmessage('文件:'+s+' 已经存储。');
end;end;
这里还是提示函数的参数数目不够,是怎么回事??
就是说,怎么知道有一个Excel在执行??