通过ASP.NET将Excel发送给用户
时间:2020-03-05 18:59:31 来源:igfitidea点击:
我有一个Web应用程序,它能够打开excel模板,将数据推送到工作表中并将文件发送给用户。打开文件后,VBA宏将根据推送到模板中的数据刷新数据透视表。
用户将收到标准的"文件打开/保存"对话框。
在Internet Explorer(版本6)中,如果用户选择保存文件,则在打开文件时,VBA代码将按预期运行,但是,如果用户选择"打开",则VBA将失败,并显示:
运行时错误1004:无法打开数据透视表源文件。
在所有其他浏览器中,打开和保存预期的工作。
我不能升级到较新版本的IE(企业官僚机构);我可以做些什么让用户无需先保存就可以打开吗?
解决方案
回答
据我所知,打开或者保存的选项是浏览器选择项,无法覆盖此行为。
回答
较新版本的Excel确实不喜欢自动运行宏。如果我们确实要生成Excel文件并将其发送给用户,请使用Excel的COM接口或者一些可以读取/写入XLS文件的库在服务器上构建完整文件,然后发送完成的文件。
回答
如果我不得不猜测,我会说它与文件当前所在的区域有关。单击"打开"时,它可能仍会在" Internet区域"中考虑。 VBA不应在该区域内运行。
让用户将服务器网站标记为安全(控制面板-> Internet选项->安全->受信任的站点->站点),然后查看是否有帮助。