通过 ASP.NET 向用户发送 Excel

Posted

技术标签:

【中文标题】通过 ASP.NET 向用户发送 Excel【英文标题】:Sending Excel to user through ASP.NET 【发布时间】:2010-09-10 07:00:24 【问题描述】:

我有一个 Web 应用程序,它能够打开 Excel 模板、将数据推送到工作表中并将文件发送给用户。打开文件时,VBA 宏将根据推送到模板中的数据刷新数据透视表。

用户收到标准的文件打开/保存对话框。

在 Internet Explorer(版本 6)中,如果用户选择保存文件,则在打开文件时 VBA 代码会按预期运行,但是如果用户选择“打开”,则 VBA 将失败并显示:

运行时错误 1004:无法打开数据透视表源文件。

在所有其他浏览器中都按预期打开和保存工作。

我无权升级到更新版本的 IE(企业官僚机构);我可以做些什么来让用户在不先保存的情况下打开?

【问题讨论】:

【参考方案1】:

较新版本的 Excel 确实不喜欢自动运行宏。如果您确实想生成 Excel 文件并将其发送给您的用户,请使用 Excel 的 COM 接口或一些可以读取/写入 XLS 文件的库在服务器上构建完整文件,然后发送完成的文件。

【讨论】:

【参考方案2】:

打开或保存选项是浏览器选择项,据我所知,无法覆盖此行为。

【讨论】:

【参考方案3】:

如果我不得不猜测,我会说这与文件当前所在的区域有关。当您单击“打开”时,它可能仍被视为“互联网区域”。 VBA 不应在该区域内运行。

让用户将服务器网站标记为安全(控制面板 -> Internet 选项 -> 安全 -> 受信任的站点 -> 站点),看看是否有帮助。

【讨论】:

以上是关于通过 ASP.NET 向用户发送 Excel的主要内容,如果未能解决你的问题,请参考以下文章

ASP .Net C# 代码向多个用户发送邮件,这些用户的邮件 ID 应隐藏在组名中

如何在 ASP.NET MVC 中向客户端发送 XML 文件

从 C# Asp.net 向 Lync 发送消息

Asp.net 6 授权。我有能力向客户端发送 JWT,但是当我尝试访问我的端点时,我得到 401。非常困惑

通过asp.net windows phone 8发送推送通知

ASP.NET Core Angular - 根据登录用户发送不同的 SignalR 消息