delphi 在读写一个Excel时,用户打开其他的Excel文件并关闭,会出现OLE error 800A01A8的错误,如何解决?

nc_uu 2009-03-06 11:32:26
我写了一个Delphi程序用来处理一些Excel文件,但由于这些文件都比较大,需要5,6分钟,由于客户的日常工作都是使用Excel的,所以会在程序处理时,客户会使用excel继续其他的工作,这时如果客户操作中手动关闭了Excel文件,程序就会出现OLE error 800A01A8错误,请问大家有没有碰到过这样的情况?多谢
...全文
1565 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
kevin 2009-10-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 nc_uu 的回复:]
引用 6 楼 DreamTww 的回复:

对于资源的处理应该是独占方式的,就是所说的单例模式的处理方法,
这种程序,只要打开的Excel不是你所处理的Excel是不会出错的。



能否具体一点?
[/Quote]

晕, 太小瞧delphi了, 用delphi完全可以实现这个功能。
1、你是否创建了Excel.Application的COM对象?
2、处理前可以使用createFile判断程序是否正在使用?
3、处理过程中,将Excel COM对象的visible = false
nc_uu 2009-06-04
  • 打赏
  • 举报
回复
没有解决,改用java Swing实现该功能。
nc_uu 2009-03-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ron_xin 的回复:]
先不让Excel显示,处理完数据后再显示出来
[/Quote]
这和Excel显不显示没有关系,问题的关键是客户对自己打开的excel进行操作,会影响到程序后台处理的Excel
nc_uu 2009-03-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 DreamTww 的回复:]

对于资源的处理应该是独占方式的,就是所说的单例模式的处理方法,
这种程序,只要打开的Excel不是你所处理的Excel是不会出错的。



[/Quote]
能否具体一点?
genispan 2009-03-09
  • 打赏
  • 举报
回复
你是不是用到了一些excel必须独占的一些功能啊?
ron_xin 2009-03-08
  • 打赏
  • 举报
回复
先不让Excel显示,处理完数据后再显示出来
kevin 2009-03-07
  • 打赏
  • 举报
回复

对于资源的处理应该是独占方式的,就是所说的单例模式的处理方法,
这种程序,只要打开的Excel不是你所处理的Excel是不会出错的。


nc_uu 2009-03-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 winstonbonaparte 的回复:]
我没碰到过这种问题。
不过我想,你可以以只读方式打开EXCEL,这样别人再打开的话就只是只读,应该就不会对程序有影响了吧。
或者你把那个EXCEL文件拷贝到一个临时文件夹中,等操作完成之后再删除
[/Quote]
别人打开的不是程序正在处理的文件,而是另外的excel文件,比如程序处理的是A.xls,用户自己又打开了B.xls,这时用户关闭了B.xls,就会出现上面所说的错误了
winstonbonaparte 2009-03-06
  • 打赏
  • 举报
回复
我没碰到过这种问题。
不过我想,你可以以只读方式打开EXCEL,这样别人再打开的话就只是只读,应该就不会对程序有影响了吧。
或者你把那个EXCEL文件拷贝到一个临时文件夹中,等操作完成之后再删除
nc_uu 2009-03-06
  • 打赏
  • 举报
回复
没有人碰到过这样的情况么?
hanks_gao 2009-03-06
  • 打赏
  • 举报
回复
幫樓主頂一個
nc_uu 2009-03-06
  • 打赏
  • 举报
回复
自己顶一下

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧