这个问题与某人在恰好装有 Windows Server 操作系统的计算机上使用 Excel 无关。而且,它与使用任何 Sharepoint 服务功能无关!
问题是关于使用代码(办公自动化)打开 Excel 文件、操作它们、运行计算、读取数据、保存文件副本并关闭文件的自动化流程......全部以代码完成。
在以前版本的 Excel 中,许可协议禁止在公共服务器上使用,微软的说明警告了在服务器环境中尝试使用 Office Automation 时会出现的问题,并且我们还被警告 Excel 是单线程的,不适合在服务器上使用。
关于此内容的大部分文章都是在 Office 2010 之前撰写的。
但现在,Excel 2010 被设计为使用 HPC Services for Excel 在高性能计算服务器上运行。一份 HPC 文档提到“Windows HPC Server 2008 R2 包含一个全面的弹出窗口管理器,可以处理偶尔出现的对话框和弹出消息”。
所以我的问题是...现在在“普通”服务器上运行自动化 Excel 2010 的代码是否“安全”没有使用 HPC 服务?
如果不是,那么 Excel 的 HPC 服务可以在单个服务器上运行吗?
我不需要 Excel 的 HPC 服务的高性能、分布式计算方面...只需要在服务器上运行 Excel 的能力。
现在可以做到吗?
谢谢,格伦
答案1
您的问题归结为“我可以安全地使用 Excel 自动化 API 吗?”,与服务器细节关系不大。当然,Excel做在 Windows Server 平台上运行,在终端服务器环境中也是相当常见的情况,但通常由各个用户以交互方式运行。以这种方式运行它始终是安全的(即旧版本也放在终端服务器上)。
话虽如此,KB257757上次修订于 2010 年 7 月 2 日,其中“适用于”部分明确列出“Microsoft Excel 2010”, 状态:
Microsoft 目前不建议也不支持从任何无人参与、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)自动化 Microsoft Office 应用程序,因为在此环境中运行时 Office 可能会表现出不稳定的行为和/或死锁。
具体关于许可问题:
当前的许可准则禁止在服务器上使用 Office 应用程序来满足客户端请求,除非客户端本身拥有 Office 的许可副本。
并以粗体字结尾:
微软强烈推荐一些不需要在服务器端安装 Office 的替代方案,这些替代方案可以比自动化更高效、更快速地执行大多数常见任务。在将 Office 作为项目的服务器端组件之前,请考虑其他替代方案。
我相信你不可能有比这更明确的说法。