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

[经验分享] [SharePoint 2010 的那些事儿 – Excel Service]如何与EWA WebPart进行交互

[复制链接]

尚未签到

发表于 2015-9-27 08:09:45 | 显示全部楼层 |阅读模式
  在小弟的上一篇博客[SharePoint 2010 的那些事儿 – Excel Service]初识 Excel Service JavaScript OM中向大家简单介绍了如何使用Excel Service JavaScript对象模型,在本篇博客中小弟我将继续此内容,在下面的文章中为大家来简单介绍下如何通过Excel Service JavaScript对象模型与EWA WebPart进行交互。
  第一步:监听EWA WebPart事件
  要监听EWA WebPart上的各种事件,首先要做的就是在ewaApplicationReady函数内添加各种事件监听器。在上篇博客中已经介绍过了,我们可以通过Ewa.EwaControl.getInstances().getItem(0)获得一个EwaControl对象,该对象支持多种类型的事件监听器,如下所示。
  add_gridSynchronizedOnce
  add_activeCellChanged
  add_activeSelectionChanged
  add_applicationReady
  add_enteredCellEditing
  add_gridSynchronized
  在本例中将使用add_activeCellChanged()方法,以监听工作簿中改变被选中的单元格事件。
  



function ewaApplicationReady()
{
  ewa = Ewa.EwaControl.getInstances().getItem(0);
  setTimeout(forceRecalc, 300000);
  ewa.add_activeCellChanged(cellChanged);
}

  


  此时当我们选择不同的单元格时,EWAControl对象就将调用我们刚刚所写的这个cellChanged()方法。
  



function cellchanged(rangeArgs)
{
}
  


  其中的rangeArgs参数包括我们所选中的单元格的各种信息,它有三个方法,分别是:
  getRange() -将返回所选中的单元格对象
  getWorkbook()-返回当前EWA WebPart所加载的Excel工作表对象
  getFormattedValues()-返回所选中的单元格中的值
  在本例中将使用getFormattedValues()方法获得单元格的值,并以此值来切换不同的图片。
  第二步:在内容编辑器中添加img标签来展示图片
  在上篇博客中我们在内容编辑器中添加了一段用于定时刷新EWA WebPart的JavaScript脚本,现在继续向其中添加一个<img>标签,用来展示网站中的图片,在稍后的内容中将添加另一段JavaScript脚本来改变这个标签的src属性。
  



<img id="dashboardPersonPicture" />
  


  第三步:根据单元格的值切换图片
  接下来就是向刚才的cellchanged方法中添加用于切换图片的代码了。
  



function cellchanged(rangeArgs)
{
  var img = document.getElementById("dashboardPersonPicture");
  img.src = ".. /Images1/ " + encodeURIComponent(rangeArgs.getFormattedValues()) + ".jpg";
}
  


  这段代码将获得我们所选中的单元格的值,并根据该值合成图片地址,进而设置img标签的src属性,以此来实现根据单元格的值切换图片的效果。
  下面来看下具体的效果。
DSC0000.jpg
  现在出现一个问题,当点击列头时图片库中是没有与其对应的图片的,就像下图所示。这时我们就需要在切换图片前先判断所选中的单元格是否为列头。
DSC0001.jpg
  第四步:再看单元格对象
  要验证所选单元格是否为列头,可以通过rangeArgs参数获得所选的单元格对象,并以此对象的信息来验证该单元格,如果验证通过的话再切换图片。
  



function cellchanged(rangeArgs)
{
  var sheetName = rangeArgs.getRange().getSheet().getName();
  var col = rangeArgs.getRange().getColumn();
  var row = rangeArgs.getRange().getRow();
  var value = rangeArgs.getFormattedValues();
  if (sheetName == "Sheet1" && col == 1 && row > 1 && value && value != "")
  {
    var img = document.getElementById("dashboardPersonPicture");
    img.src = ".. /Images1/ " + encodeURIComponent(rangeArgs.getFormattedValues()) + ".jpg";
  }
}
  


  在上面的代码中使用了getSheet().getName() , getColumn() 和 getRow()这三个Range对象的方法,通过它们获得单元格在工作簿中的位置信息,从而完成对单元格的验证。
  通过本篇博客相信各位看官已经初步了解了如何使用EWA JavaScript OM添加事件处理程序来与EWA WebPart的进行交互,下篇文章将介绍如何通过EWA JavaScript OM向Excel 工作簿中写入值,希望各位能够继续关注我的博客,在此祝各位圣诞节快乐~~~

运维网声明 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-119267-1-1.html 上篇帖子: 揪出未完成的SharePoint Server 2007调查答复 下篇帖子: [SharePoint 2010 的那些事儿-升级篇]In-Place Update 就地升级
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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