我参考了某位大哥的代码,实现存入excel的功能,但是保存的路径是固定的,我想利用
savedialog控件,跳出保存路径对话框,但不知到filename应该如何加上去,请各位指教:
procedure TForm1.Button2Click(Sender: TObject);
var
xlsFilename :string;
eclApp,WorkBook :variant ;
a_filedNo,i,j :integer;begin if SaveDialog1.Execute then
showmessage(savedialog1.FileName)
else
exit; //按下取消按钮
a_filedNo :=Form1.DBGrid1.FieldCount ; //
// showmessage(inttostr(a_filedno));
xlsFileName :='文件名称.xls';
// xlsfilename:=savedialog1.FileName+'.xls'; try
eclApp :=CreateOleObject('Excel.Application');
WorkBook :=CreateOleObject('Excel.Sheet');
except
showmessage('没有安装MS EXCEL');
exit;
end; try
WorkBook :=eclApp.workBooks.add ; for i :=1 to a_FiledNo do
begin
//eclApp.cells(1,i) :=Form3.DBGrid4.Columns[i-1].Title.caption ;
eclApp.cells(1,i) :=Form1.DBGrid1.Fields[i-1].FieldName ;
end; Form1.DBGrid1.DataSource.DataSet.First ;
for i :=1 to Form1.a_ck.RecordCount do //Form3.a_recno begin
for j :=1 to a_filedNo
begin
eclApp.cells(i+1,j) :=Form1.DbGrid1.Fields[j-1].Value ;
end;
Form1.DBGrid1.DataSource.DataSet.Next ;
end;
try
WorkBook.saveas(ExtractFilePath(Application.ExeName )+xlsFileName);
WorkBook.close; showmessage('保存成功路径为:'+ExtractFilePath(Application.ExeName )+xlsFileName);
except
showmessage('保存出错');
end;
except
WorkBook.close;
eclApp.quit;
eclApp :=Unassigned;
end;
end;
end.
savedialog控件,跳出保存路径对话框,但不知到filename应该如何加上去,请各位指教:
procedure TForm1.Button2Click(Sender: TObject);
var
xlsFilename :string;
eclApp,WorkBook :variant ;
a_filedNo,i,j :integer;begin if SaveDialog1.Execute then
showmessage(savedialog1.FileName)
else
exit; //按下取消按钮
a_filedNo :=Form1.DBGrid1.FieldCount ; //
// showmessage(inttostr(a_filedno));
xlsFileName :='文件名称.xls';
// xlsfilename:=savedialog1.FileName+'.xls'; try
eclApp :=CreateOleObject('Excel.Application');
WorkBook :=CreateOleObject('Excel.Sheet');
except
showmessage('没有安装MS EXCEL');
exit;
end; try
WorkBook :=eclApp.workBooks.add ; for i :=1 to a_FiledNo do
begin
//eclApp.cells(1,i) :=Form3.DBGrid4.Columns[i-1].Title.caption ;
eclApp.cells(1,i) :=Form1.DBGrid1.Fields[i-1].FieldName ;
end; Form1.DBGrid1.DataSource.DataSet.First ;
for i :=1 to Form1.a_ck.RecordCount do //Form3.a_recno begin
for j :=1 to a_filedNo
begin
eclApp.cells(i+1,j) :=Form1.DbGrid1.Fields[j-1].Value ;
end;
Form1.DBGrid1.DataSource.DataSet.Next ;
end;
try
WorkBook.saveas(ExtractFilePath(Application.ExeName )+xlsFileName);
WorkBook.close; showmessage('保存成功路径为:'+ExtractFilePath(Application.ExeName )+xlsFileName);
except
showmessage('保存出错');
end;
except
WorkBook.close;
eclApp.quit;
eclApp :=Unassigned;
end;
end;
end.
if SaveDialog1.Execute then
...