我需要设计一个小项目,用于在.NET中生成excel报告,并将其发送给用户使用。

Excel 报告将包含数据透视表。

我对它们没有太多经验,但我可以想到三种实现替代方案:

  1. 为其设置一个查询,填充它,断开连接发送它。这样,用户将能够对值进行分组并玩一点,但他将无法刷新数据。
  2. 生成一个小型 Access 数据库并将其与 Excel 文件一起发送,然后连接到它。
  3. 将数据复制到 Excel(可能在其他工作表中)并连接到那里的数据。我认为这将使 Excel 文件变得非常大。

就性能与可用性而言,最好的选择是什么?还有其他我不知道的选择吗?

有帮助吗?

解决方案

由于这是一个小项目,您可以依靠 Excel 来存储应用程序中的数据。它将更容易开发和测试,并且更易于维护。

其他提示

@埃斯波

不,用户将无权访问原始数据源,这就是为什么我正在考虑使用报告所需的数据子集创建一个小型访问数据库

您必须保持数据“离线”吗?

在拥有大量数据的情况下,我通常会使用网络上现有的 sql 服务器。如果是在办公室使用,用户无论如何都会上网。

只需记住为此报告在 sql 服务器上创建一个具有受限访问权限的专用用户,并且不要将“sa”密码存储在 excel 文件中。

如果您所说的“发送给用户”是指办公室之外的用户,那么这不是一个好的解决方案。如果是这样的话,我会尝试将数据包含在 Excel 工作表中,看看它会变得有多大。如果文件不太大,这将是最用户友好的解决方案。

另外,我在网上找到了这个: 在 Microsoft Office Excel 2003 中使用 Web 查询的不同方法. 。这样您就可以将数据存储在公共网站上(如果需要,可以使用秘密 URL),然后让 Excel 提取数据。这样,您就不必用大文件填充用户收件箱,并且您还可以稍后更新数据,而无需重新发送 excel 文件。

选项 3 听起来最简单,我认为 Excel 存储数据的效率似乎并不比 Access 更高。两个文件的问题在于,即使在不同的位置,它们之间的链接也能正常工作。

@保罗莫里斯

或许...问题在于单个工作表可以包含的数据量是有限的......我正在考虑选项 2,除非有人告诉我这对于性能来说不是一个好主意

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top