永发信息网

delphi excelworksheet.saveas()函数保存问题

答案:2  悬赏:10  手机版
解决时间 2021-03-10 12:05
  • 提问者网友:富士山上尢
  • 2021-03-09 20:40
设置了worksheet单元格的数据,然后用savedlg选择一个新文件,使用saveas另存为,出现了问题.
savedlg已经设置ofOverwritePrompt,没问题,但是当文件已存在的时候,选择覆盖,然后会弹出Microsoft Excel的窗口提示是否覆盖,这时如果选择是,不会出问题,而选择否,就会报某个类的错误,后面的代码无法执行,请问这个问题要怎么解决呢?
if dlgSave1.Execute then
begin
try
EXCELWORKSHEET.SaveAs(dlgSave1.FileName);
//执行这段代码时会再次提示是否覆盖,有没有办法使这一步直接默认覆盖,或者点否的时候不会报错呢,或者其他的方法解决

mmo1.Lines.Add('保存成功!请到'+ dlgSave1.FileName +'查看结果文件!');
Delay(500);
mmo1.Lines.Add('即将打开您选择的目录!');
Delay(500);
strFileName := dlgSave1.FileName ; //路径
ShellExecute(0, nil, PChar('explorer.exe'),PChar('/e, ' + '/select,' + strFileName), nil, SW_NORMAL);
finally
EXCEL.Disconnect ;
EXCEL.Quit ;
close;
end;
end;
最佳答案
  • 五星知识达人网友:患得患失的劫
  • 2021-03-09 21:47
估计是控件里面的问题。如果无法解决的话,只有用另一种方法了。就是在发现有已存在的文件时,删除原文件。
if FileExists(dlgSave1.FileName) then
DeleteFile(dlgSave1.FileName);
……
EXCELWORKSHEET.SaveAs(dlgSave1.FileName);

……
全部回答
  • 1楼网友:独钓一江月
  • 2021-03-09 22:07
我用的是exworksheet空间,但不想再动态地加exworksheet空间,我的语句如下: eapp1.workbooks[1].sheets.add(null, eapp1.workbooks[1].sheets[eapp1.workbooks[1].sheets.count], null, null); 错在那里?望赐教!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯