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