if messagedlg('转换成功!保存吗?',mtconfirmation,[mbyes,mbno],0) = mryes then
begin
save_ok:=savedialog1.Execute ; if save_ok then
excel_sheet.saveas(savedialog1.FileName ); end; excel_sheet.application.quit;
begin
save_ok:=savedialog1.Execute ; if save_ok then
excel_sheet.saveas(savedialog1.FileName ); end; excel_sheet.application.quit;
你回答了我不少问题,在此表示感谢。
我用异常保护
try
WorkBook.SaveAs(FileName:=ExcelFileName);
except
end;
我想在EXCEPT中把当前WORKBOOK给释放掉,该怎么处理呢?以免得还留在内存中, 下次保存时还会提示问我是否要保存。
Var //添加一个bool变量:
flag:bool;flag:=true;//以下为需要修改的部分!!!!!!
try
WorkBook.SaveAs(FileName:=ExcelFileName);
except
on E:EOleException do
begin
WorkBook.Close;
Excel.Quit;
flag:=false;
end;
end;//完整性处理
if flag then
begin
Excel.Quit;
flag:=false;
end;
xlssheet.saveas(savedialog1.FileName );
并且把savedialog1的options中的ofoverwriteprompt设为true即可,那样即使选择“否”,也可以让你再选择
可是当执行WorkBook.Close; 时,又会提示是否保存WORKBOOK
语句新建的,既然新建当然会提示保存了,不过你可以取消啊。
最好不要再提示这个框, 该怎么屏蔽呢?
if not VarIsEmpty(XlsApp) then
begin
XlsApp.DisplayAlerts := True; // 7Discard unsaved files....
try
XlsApp.Application.Quit;
except
end;
end;
try
WorkBook.SaveAs(FileName:=ExcelFileName);
except
on E:EOleException do Excel.DisplayAlerts := false;
end; WorkBook.Close;
Excel.Quit;
//还不满意的话,是不是有点过分苛刻了。