我需要设计一个在.NET 中生成excel 报告的小项目,发送给用户使用。
Excel 报表将包含数据透视表。
我对它们没有太多经验,但我可以想到三种实现方案:
- 为它设置一个查询,填充它,断开它发送。这样,用户将能够对值进行分组并进行一些操作,但他将无法刷新数据。
- 生成一个小型访问数据库并将其与excel文件一起发送,连接到它。
- 将数据复制到 Excel(可能在其他工作表中)并连接到那里的数据。我认为这将使excel文件非常大。
就性能与可用性而言,最好的选择是什么?还有其他我不知道的选择吗?
我需要设计一个在.NET 中生成excel 报告的小项目,发送给用户使用。
Excel 报表将包含数据透视表。
我对它们没有太多经验,但我可以想到三种实现方案:
就性能与可用性而言,最好的选择是什么?还有其他我不知道的选择吗?
您必须保持数据“离线”吗?
在这些有大量数据的情况下,我通常会使用网络上已经存在的 SQL 服务器。如果要在办公室使用,用户无论如何都会在线。
请记住在 SQL 服务器上为此报告创建一个具有受限访问权限的专用用户,并且不要将“sa”密码存储在 excel 文件中。
如果您通过“发送给用户”来指代办公室以外的用户,那么这不是一个好的解决方案。如果是这种情况,我会尝试将数据包含在 Excel 工作表中,看看它会变得多大。如果文件不是太大,那将是最用户友好的解决方案。
另外,我在网上找到了这个:Microsoft Office Excel 2003 中使用 Web 查询的不同方法。这将允许您将数据存储在公共网站上(如果需要,可以使用秘密 URL),然后让 Excel 提取数据。这样您就不必用大文件填充用户的收件箱,并且您也可以稍后更新数据而无需重新发送 Excel 文件。
@Espo
不,用户将无法访问原始数据源,这就是为什么我正在考虑使用报告所需的数据子集创建一个小型访问数据库
选项 3 听起来最简单,我认为 Excel 在存储数据方面似乎并不比 Access 更有效。两个文件的问题是让它们之间的链接即使在不同的位置也能工作。
@paulmorriss
也许......问题在于单张工作表可以包含多少数据存在限制......我在考虑选项2,除非有人告诉我这在性能方面不是一个好主意
由于它是一个小型项目,您可以依靠 Excel 来存储应用程序中的数据。它会更容易开发和测试,也更容易维护。