找回密码
 立即注册

QQ登录

只需一步,快速开始

cqtk

银牌会员

42

主题

79

帖子

2895

积分

银牌会员

积分
2895

活字格认证

cqtk
银牌会员   /  发表于:2012-7-18 09:37  /   查看:5178  /  回复:3
请问Spread支持导出Excel为临时文件功能吗?就是说导出时使用Excel软件默认打开,在关闭时才提示是否保存,有没有直接的解决方法呢?如果不支持,可以提供变通解决方案吗?

3 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-18 10:11:00
沙发
Spread本身没有提供这样的功能

从变通的角度来讲,可以先将Spread导出为一个Excel文件,然后调用Excel将该文件打开,不过要在关闭Excel时决定是否保存应该做不到,因为通过Excel打开文件后的操作,Spread无法干预。
回复 使用道具 举报
taxsoft
中级会员   /  发表于:2012-7-18 14:18:00
板凳
补充下楼上
Spread导出EXCEL到系统临时文件目录
然后借助AxWebBrowser控件加载
Dim missing As System.Object = System.Reflection.Missing.Value
AxWebBrowser1.Navigate(strFileName, missing, missing, missing, missing)
有两个问题:
1.可能出现下载提示框,可以预先通过操作注册表解决——效果等同“把‘总是询问’的复选框取消勾选,并点‘打开”。
2.早期EXCEL软件版本会在AxWebBrowser1内显示,比较新的Excel软件版本会直接在Excel软件内打开——我们需要的其实是在AxWebBrowser1外面打开——微软的 修复工具:MicrosoftFixit50298 解决的是相反的问题,可以参照这个工具对注册表的修改反其道而行之

那么,以上两个问题得到解决。

接下来思路就明朗了:
SPREAD 通过 AxWebBrowser1 对EXCEL 的状态进行检查(虽然在EXCEL直接打开了,AxWebBrowser1 和这个EXCEL还是有关联的),具体怎么去判断以及了解EXCEL状态,你自己可以调试看看
AxWebBrowser1 其实是隐藏的
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-18 18:28:00
地板
非常感谢你分享该方法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部