运行 Excel 在服务器上 - C# Interop Excel
Run Excel on Server - C# Interop Excel
我们希望通过 C# .NET 对 Excel 模板文件执行以下操作(按顺序)。
- 打开 Excel 模板
- 从 SQL 视图中读取数据并写入 Excel 模板中的 sheet
- 为复制的数据设置命名范围
- 刷新基于命名范围的数据透视表table
- 密码保护,return 文件可下载。
下面给出了考虑的选项:
1. Microsoft.Office.Interop.Excel – 驱动程序实现了上述所有功能,但是,驱动程序需要在服务器上安装 Excel 客户端工具,这不是首选,因为我们无法请求 Excel 安装在所有环境中。
2. 第三方产品 - 一个名为 Excel Package Plus 的免费驱动程序似乎几乎可以满足我们的所有要求。除了刷新数据透视表 table 之外,我们几乎可以完成上述操作列表中的所有操作。
3. 在现有 excel 文件上编写宏以刷新数据透视表 table - 当用户打开文件时会发生刷新,导致延迟,而且要求下载文件枢轴 table 已刷新 .
因此,很明显,对于上述所有选项,我们遇到了障碍。我想知道是否可以将 excel 模板放在一台安装了 excel 的服务器上并从 Web 服务器访问它。这样我就可以使用 Interop.Excel 而无需在我的网络服务器上安装驱动程序。我不确定这是否会按预期工作。
不要在服务器上使用 Interop。我已经做到了,这是一场噩梦 - 你会遇到冻结的进程、内存泄漏和狗缓慢的性能。
我推荐的是对所有可以使用它的东西使用 EPPLUS,并使用 Open XML SDK 打开 excel 文件并设置命名范围。
打开XMLSDK是低级API编辑OffixeXML文档,包括Excel。您可以使用它完成您在 Office 中可以做的所有事情。它相当复杂,所以我建议尽可能使用 epplus,因为这样可以避免手动 excel 编辑的许多陷阱。
我记得有一个工具可以为您构建 C# 代码来构建您传递给它的文档 - 这样您就可以传入具有命名范围的 excel 文档并查看该工具如何构建命名范围在代码中。我认为该工具包含在 sdk
我们希望通过 C# .NET 对 Excel 模板文件执行以下操作(按顺序)。
- 打开 Excel 模板
- 从 SQL 视图中读取数据并写入 Excel 模板中的 sheet
- 为复制的数据设置命名范围
- 刷新基于命名范围的数据透视表table
- 密码保护,return 文件可下载。
下面给出了考虑的选项: 1. Microsoft.Office.Interop.Excel – 驱动程序实现了上述所有功能,但是,驱动程序需要在服务器上安装 Excel 客户端工具,这不是首选,因为我们无法请求 Excel 安装在所有环境中。 2. 第三方产品 - 一个名为 Excel Package Plus 的免费驱动程序似乎几乎可以满足我们的所有要求。除了刷新数据透视表 table 之外,我们几乎可以完成上述操作列表中的所有操作。 3. 在现有 excel 文件上编写宏以刷新数据透视表 table - 当用户打开文件时会发生刷新,导致延迟,而且要求下载文件枢轴 table 已刷新 .
因此,很明显,对于上述所有选项,我们遇到了障碍。我想知道是否可以将 excel 模板放在一台安装了 excel 的服务器上并从 Web 服务器访问它。这样我就可以使用 Interop.Excel 而无需在我的网络服务器上安装驱动程序。我不确定这是否会按预期工作。
不要在服务器上使用 Interop。我已经做到了,这是一场噩梦 - 你会遇到冻结的进程、内存泄漏和狗缓慢的性能。
我推荐的是对所有可以使用它的东西使用 EPPLUS,并使用 Open XML SDK 打开 excel 文件并设置命名范围。
打开XMLSDK是低级API编辑OffixeXML文档,包括Excel。您可以使用它完成您在 Office 中可以做的所有事情。它相当复杂,所以我建议尽可能使用 epplus,因为这样可以避免手动 excel 编辑的许多陷阱。
我记得有一个工具可以为您构建 C# 代码来构建您传递给它的文档 - 这样您就可以传入具有命名范围的 excel 文档并查看该工具如何构建命名范围在代码中。我认为该工具包含在 sdk