【问题标题】:Sending Excel to user through ASP.NET通过 ASP.NET 向用户发送 Excel
【发布时间】:2010-09-10 07:00:24
【问题描述】:
我有一个 Web 应用程序,它能够打开 Excel 模板、将数据推送到工作表中并将文件发送给用户。打开文件时,VBA 宏将根据推送到模板中的数据刷新数据透视表。
用户收到标准的文件打开/保存对话框。
在 Internet Explorer(版本 6)中,如果用户选择保存文件,则在打开文件时 VBA 代码会按预期运行,但是如果用户选择“打开”,则 VBA 将失败并显示:
运行时错误 1004:无法打开数据透视表源文件。
在所有其他浏览器中都按预期打开和保存工作。
我无权升级到更新版本的 IE(企业官僚机构);我可以做些什么来让用户在不先保存的情况下打开?
【问题讨论】:
标签:
internet-explorer
excel
vba
【解决方案1】:
较新版本的 Excel 确实不喜欢自动运行宏。如果您确实想生成 Excel 文件并将其发送给您的用户,请使用 Excel 的 COM 接口或一些可以读取/写入 XLS 文件的库在服务器上构建完整文件,然后发送完成的文件。
【解决方案2】:
打开或保存选项是浏览器选择项,据我所知,无法覆盖此行为。
【解决方案3】:
如果我不得不猜测,我会说这与文件当前所在的区域有关。当您单击“打开”时,它可能仍被视为“互联网区域”。 VBA 不应在该区域内运行。
让用户将服务器网站标记为安全(控制面板 -> Internet 选项 -> 安全 -> 受信任的站点 -> 站点),看看是否有帮助。