还用一个问题,我用OLE连接EXCEL,怎么保存?
我用了
Eappcsv.SAVEAS(路径名) 但不行 代码如下:
procedure Tsyl_form.xlsout_btClick(Sender: TObject);
label 1;
var
Eappcsv: variant;
Ewsheetcsv1: variant;
y, row,column:integer;
begin
try
Eappcsv:=createoleobject('Excel.application');
except
messagedlg('是否正确安装了 EXCEL?',MTERROR,[MBOK],0);
ABORT;
end;
Eappcsv.Visible:=false;
Eappcsv.Caption:='所要量';
Eappcsv.workbooks.add(xlwbatworksheet);
Ewsheetcsv1:=Eappcsv.workbooks[1].worksheets[1];
Eappcsv.worksheets[1].activate;
self.ADOQuery2.DisableControls;
self.ADOQuery2.First;
row:=2;
Eappcsv.Cells[1,1]:='成品代号';
Eappcsv.Cells[1,2]:='成品名称';
Eappcsv.Cells[1,3]:='部品代号';
Eappcsv.Cells[1,4]:='部品名';
Eappcsv.Cells[1,5]:='部品番号';
Eappcsv.Cells[1,6]:='单位';
Eappcsv.Cells[1,7]:='使用量';
Eappcsv.Cells[1,8]:='合计使用量';
while not self.adoquery2.Eofdo
begin
column:=1;
for y:=1 to self.adoquery2.fieldcountdo
begin
Eappcsv.Cells[row,column]:=adoquery2.Fields[y-1].AsString;
column:=column+1;
end;
self.adoquery2.Next;
row:=row+1;
end;
Ewsheetcsv1.Columns.EntireColumn.AutoFit;
1:
savedialog.Filter:= 'Xls files (*.XLS)|*.XLS';
if savedialog.Execute then
begin
IF fileexists(SaveDialog.FileName) then
begin
If messagedlg('文件'+SaveDialog.FileName+'已存在,是否覆盖?',mtConfirmation,[mbyes,mbno],0)=mrNo then
GOTO 1;
end;
Eappcsv.SaveAs(savedialog.FileName);
showmessage(' 保存完成!');
end;
Eappcsv.WorkBooks.Close;
Eappcsv.quit;
self.ADOQuery2.EnableControls;;
end;