运用Sharepoint 2007中的Excel Service的功能,我们可以很容易的将隐含在企业各种应用系统后台数据库中的数据,根据需要以各种各样的报表呈现在企业的门户中,这就是我一直认为的Sharepoint技术对企业最有价值的地方,所谓的商务智能功能——其实在SPS2003的时候,叫做数据集成,使用的也是Office的组件,不过当时没有Excel Service,有的只是OWC,使用数据透视表的功能进行报表的呈现。
SPS2003时由于相关的文档几乎找不到,所以即使做成了报表,数据的刷新一直解决不了。当然,到了Sharepoint2007,Excel Service的配置也同样复杂,要正确配置并能保证数据能够正常刷新,最佳的做法还要正确配置SSO。我这里说的不是这个部分的配置,而是假设我们配置了完整的服务器端的Excel Service的功能,从门户上每次打开报表也能够自动刷新数据以后,我们还要做的进一步的工作。
仔细研究过Excel Service的都会知道,其实Sharepoint 2007的Excel Service不仅配置相当的复杂,而且那个用于展现报表的Excel Web Access Web部件还是相当的不完善:当Excel Service报表在Web中打开的时候,默认的设置只显示75行的数据;虽然我们可以手工调整,但是使用数据透视表,需要显示的数据的多少是不确定的,因此在Web上不可能显示所有我们需要的数据,这样的话,这项功能其实就是不完整的。
鉴于以上的情况,我决定改变做法,让报表的使用者在自己的桌面打开,并能够自动刷新,这样做其实比在门户中打开,更容易被接受。因为在本机的桌面上打开一个文件,比从门户中的一个位置打开这个报表的操作要简单和方便的多。于是我将门户中的报表下载了一个副本放在了桌面,并打开了这个文件:
出现了安全警告,禁用了数据连接,意味着我的数据并没有被刷新,虽然我们可以手动的点启用内容,但这不是我们想要的结果,我们需要达到的目的是,当我们打开报表文件,所有的数据就是最新的——自动查询了数据库。
按照安全警告的提示,我打开了Excel的选项,惊讶的看到Excel中也有个信任中心,打开信任中心设置,添加信任位置,于是我想起了Sharepoint中的Excel Service的配置,于是把数据链接库的位置添加了进去,谁知打开后依然是数据连接被禁用,仔细回想了一下,把excel报表的位置也添加了进去,并且也把桌面添加到了信任中心中,这样,终于实现了在客户桌面的报表的自动刷新。
结论:要在Excel中打开报表并自动刷新,需要添加两个受信任位置:
1、将数据连接库添加到Excel的受信任位置中。
2、将报表文件本身的位置添加到Excel的受信任位置中。