通过 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 文件
Asp.net 6 授权。我有能力向客户端发送 JWT,但是当我尝试访问我的端点时,我得到 401。非常困惑