设为首页 收藏本站
查看: 1059|回复: 0

[经验分享] [SharePoint 2010 的那些事儿 – Excel Service]初识 Excel Service JavaScript OM

[复制链接]

尚未签到

发表于 2015-9-24 13:08:01 | 显示全部楼层 |阅读模式
  Excel Service 作为SharePoint商务智能解决方案中的一个重要组成部分,可以帮助我们更加轻松快捷的对组织内的数据进行分析。在Excel Service 2010中加入了两个新的API,它们分别是 Excel Services REST APIs和Excel Services JavaScript对象模型。本篇博客的主要内容就是对Excel Services JavaScript对象模型进行一个初步介绍。

  在正式介绍Excel Services JavaScript对象模型前很有必要说下Excel Web Access WebPart,如果各位看官有使用Excel Service经验的话应该会对这个WebPart比较熟悉。这个WebPart的作用就是将保存在SharePoint文档库中的ExcelService直接展示在页面中。Excel Services JavaScript其实就是操作这个EWA WebPart的JavaScript类库,所以Excel Services JavaScript对象模型必须与EWA WebPart同时使用才行。

  第一步:创建页面

  首先,需要一个创建用于承载EWA WebPart的Web部件页,我要用这个WebPart在页面中显示一个简单的Excel表。

DSC0000.png

  在弹出的窗口中选择[页面]类别,然后选择创建一个Web部件页。

DSC0001.png

  在页面创建好后,就可以向页面中的WebPart区域插入一个Excel Web Access WebPart了,可以在[业务数据]类别中找到EWA WebPart。

DSC0002.png

  接下来还需要添加一个内容编辑器WebPart,因为可以很方便的在它里面插入一段JavaScript代码,它位于[媒体和内容]类别内。最后界面的结构类似下图这样。

DSC0003.png

  下面要做的就是设置要在EWA中显示的Excel文件了,打开Web部件编辑面板,设置工作簿地址。

DSC0004.png

  第二步:创建EWA JavaScript OM框架代码

  在使用JavaScript对象模型时,有一些标准的代码需要预先添加到我们的代码文件中。

  




<script type="text/javascript">
  ///<reference path="http://tsdlt2/_layouts/EwaJsom.ashx?v=1"/>
  var ewa = null;
  //set page event handlers for onload and unload
  if (window.attachEvent)
  {
    window.attachEvent("onload", ewaOmPageLoad);
  }
  else
  {
    window.addEventListener("DOMContentLoaded", ewaOmPageLoad, false);
  }
  //load map
  function ewaOmPageLoad()
  {
    if (typeof (Ewa) != "undefined")
    {
      Ewa.EwaControl.add_applicationReady(ewaApplicationReady);
    }
    else
    {
    // Error - the EWA JS is not loaded.
    }
  }
</script>

  
  
  上面这段代码就是EWA JavaScript OM框架代码了,在使用EWA JavaScript OM前需要将这段代码贴到前面。这段代码比较简单,首先就是向页面里添加一个Event Handler,用来在页面加载时运行后面的代码。在页面加载时会调用ewaOmPageLoad()方法,随后再调用EWA对象的add_applicationReady()方法。

  第三步:让我们的EWA WebPart可以定时的重新计算

  下面让我们来实现一个定时刷新功能。首先来实现在add_applicationReady()方法中调用的ewaApplicationReady方法。先用getItem()方法获得页面中EWA控件的引用,接着再使用setTimeout()方法添加一个计时器。

  




function ewaApplicationReady()
{
  ewa = Ewa.EwaControl.getInstances().getItem(0);
  // Start recalcing the workbook every 5 minutes.
  setTimeout(forceRecalc, 300000);
}

  
  
  然后再通过getActiveWorkbook()方法获得当前处于激活状态的工作簿,并调用WorkBook对象的recalcAsync()方法以重新对EWA WebPart中承载的Excel文件进行重新计算。

  




function forceRecalc()
{
  ewa.getActiveWorkbook().recalcAsync(recalcComplete, null);
}

  
  
  由于recalcAsync()方法是一个异步方法,它会需要一个call back方法,也就是下面定义的recalcComplete()方法,我们需要在其中再次用setTimeout()方法添加一个计时器,以实现每隔一段时间一次的定时计算。

  




function recalcComplete(result)
{
  setTimeout(forceRecalc, 300000);
}

  
  
  这段代码比较简单,相信大家已经对Excel Service JavaScript OM有了一个简单的了解,下篇文章小弟我还会继续就这方面写一些其它的内容,希望各位看官继续关注小弟博客,多谢多谢。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-118253-1-1.html 上篇帖子: sharepoint:爬网完成后上传新文档搜索不到(设定爬网Schedule) 下篇帖子: sharepoint:浏览器中直接打开文档(office web apps)、打开文档错误
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表