金格WebOffice2015-----vue项目

简介: 金格WebOffice2015-----vue项目

下载

官网地址:http://www.goldgrid.com/jinge_download/index.aspx?num=5

image.png

解压后的文件image.png

  • js文件中有两个重要的js文件iWebOffice2015.jsWebOffice.js
  • WebOffice.js是WebOffice2015对象的一些方法。
  • iWebOffice2015.js是根据不同的浏览器环境来渲染<object>

image.png

安装插件

  • 安装iWebOfiice2015.msi

image.png

实现

iWebOffice2015.jsWebOffice.js放入static目录下

image.png

index.html中引入WebOffice.js

image.png

修改iWebOffice2015.js

官网iWebOffice2015.js源文件在下面截图处少了一个闭合标签,如下图添加

image.png

由于异步加载不允许使用document.write方法,这里注释掉document.write(str)

image.png

  • 【可选操作】,注释浏览器判断,这里由于未写入文档流,所以获取一些属性是出错的,如document.getElementById("WebOffice").type,注释掉就可以
/*注释以下代码*/
/*if ((window.ActiveXObject != undefined) || (window.ActiveXObject != null) || "ActiveXObject" in window) {
} else {
  if (browser == "firefox") {
    if(version < "52"){
      var fireFoxType = navigator.mimeTypes["application/kg-activex"];
      if (fireFoxType == undefined) {
        document.getElementById("WebOffice").width = "1px";
        var str='<div width="100%" height="100%" style="text-align:center; color: red;font-size:30px;" >该插件不受支持</br>点击跳转解决方案</div>';
        var t = document.getElementById("OfficeDiv");
        t.innerHTML = t.innerText + str;
      }
    }else{
      document.getElementById("WebOffice").width = "1px";
      var str='<div width="100%" height="100%" style="text-align:center;color: red;font-size:30px;" >该插件不受支持</br>请更换52版本以下的FireFox浏览器</div>';
      var t = document.getElementById("OfficeDiv");
      t.innerHTML = t.innerText + str;
    }
  }else if(browser == "chrome"){
     var kgchromeType = navigator.mimeTypes["application/kg-plugin"]; //高级版
     var chromeType = navigator.mimeTypes["application/kg-activex"]; //标准版
     var oldChromeType = navigator.mimeTypes["application/iWebPlugin"]; //早期淘汰版本
     if(document.getElementById("WebOffice").type == "application/kg-plugin"){
       if (kgchromeType == undefined) {
         document.getElementById("WebOffice").width = "1px";
         var str='<div width="100%" height="100%" style="text-align:center; color: red;font-size:30px;" >该插件不受支持</br>引用的是高级版控件</br></div>';
         var t = document.getElementById("OfficeDiv");
         t.innerHTML = t.innerText + str;
         //window.open("Faq002.html");
       }  
     }else{
       if(version > "45"){
         if (chromeType == undefined || oldChromeType == undefined) {
           document.getElementById("WebOffice").width = "1px";
           var str='<div width="100%" height="100%" style="text-align:center;color: red;font-size:30px;" >该插件不受支持</br>引用的是标准版控件</br></div>';
           var t = document.getElementById("OfficeDiv");
           t.innerHTML = t.innerText + str;
         }  
       }else{
         document.getElementById("WebOffice").width = "1px";
         var str='<div width="100%" height="100%" style="text-align:center;color: red;font-size:30px;" >标准版插件不受支持</br>请更换45版本以下的Chrome浏览器</br>如果需要使用高版本Chrome浏览器,需集成高级版插件</div>';
         var t = document.getElementById("OfficeDiv");
         t.innerHTML = t.innerText + str;
       }
     }
  }
}
*/

iWebOffice2015.js末尾将拼接好的字符串暴露出来

image.png

代码示例

vue文件中import引入iWebOffice2015.js

initWebOffice通过创建vue实例手动挂载来渲染<object>,将刚才暴露出来的<object>加载到office

initWebOfficeObject中的关键点是this.webOfficeObj.CreateFile(),创建一个空白的文档


//////

<template>
  <div style="width:100%;height:100%;">
    <div id="office"></div>
  </div>
</template>
<script>
  import Vue from 'vue';
  import webOfficeTpl from '../../../../../static/webOffice/iWebOffice2015.js';
  export default {
    data() {
      return {
        webOffice: null,
        webOfficeObj: null
      }
    },
    beforeCreate(){
    },
    mounted(){
      console.log(webOfficeTpl);
      this.$nextTick(() => {
        this.initWebOffice();
        this.initWebOfficeObject();
      })
    },
    beforeDestroy() {
    },
    methods: {
      initWebOffice() {
        this.webOffice = new Vue({
          template: webOfficeTpl
        }).$mount('#office');
      },
      initWebOfficeObject() {
        this.webOfficeObj = new WebOffice2015();
        this.webOfficeObj.setObj(document.getElementById('WebOffice'));
        try{
          //this.webOfficeObj.ServerUrl = "http://www.kinggrid.com:8080/iWebOffice2015/OfficeServer";
          //this.webOfficeObj.RecordID = "1551950618511";  //RecordID:本文档记录编号
          this.webOfficeObj.UserName = "XXX";
          this.webOfficeObj.FileName = "Mytemplate.doc";
          this.webOfficeObj.FileType = ".doc"; //FileType:文档类型  .doc  .xls
          this.webOfficeObj.ShowWindow = false; //显示/隐藏进度条
          this.webOfficeObj.EditType = "1"; //设置加载文档类型 0 锁定文档,1无痕迹模式,2带痕迹模式
          this.webOfficeObj.ShowMenu = 1;
          this.webOfficeObj.ShowToolBar = 0;
          this.webOfficeObj.SetCaption(this.webOfficeObj.UserName + "正在编辑文档"); // 设置控件标题栏标题文本信息
          //参数顺序依次为:控件标题栏颜色、自定义菜单开始颜色、自定义工具栏按钮开始颜色、自定义工具栏按钮结束颜色、
          //自定义工具栏按钮边框颜色、自定义工具栏开始颜色、控件标题栏文本颜色(默认值为:0x000000)
          if (!this.webOfficeObj.WebSetSkin(0xdbdbdb, 0xeaeaea, 0xeaeaea, 0xdbdbdb, 0xdbdbdb, 0xdbdbdb, 0x000000)) {
            alert(this.webOfficeObj.Status);
          }    //设置控件皮肤
          if(this.webOfficeObj.WebOpen()) {
            // StatusMsg(WebOfficeObj.Status);
          }
          this.webOfficeObj.AppendMenu("1","打开本地文件(&L)");
          this.webOfficeObj.AppendMenu("2","保存本地文件(&S)");
          this.webOfficeObj.AppendMenu("3","-");
          this.webOfficeObj.AppendMenu("4","打印预览(&C)");
          this.webOfficeObj.AppendMenu("5","退出打印预览(&E)");
          this.webOfficeObj.AddCustomMenu();
          this.webOfficeObj.HookEnabled();
          this.webOfficeObj.CreateFile() // 根据FileType设置的扩展名来创建对应的空白文档
        }
        catch(e){
          console.log("catch");
          console.log(e.description);
        }
      }
    }
  }
</script>
<style lang="less">
</style>

通过控制台可查看<object>

image.png

效果

image.png

注:遇到错误可参考

如浏览器打开提示不支持插件,先核实是否安装了iWebOfiice2015.msi,如已安装,打开这里的企业应用浏览器进行测试

image.png

启动KGPMSYS服务

image.png

目录
相关文章
|
26天前
|
JavaScript 数据可视化
vue-cli学习一:vue脚手架的 vue-cli2和vue-cli3版本 创建vue项目,vue的初始化详解
这篇文章介绍了如何使用vue-cli 2和3版本来创建Vue项目,并详细说明了两者之间的主要区别。
74 5
vue-cli学习一:vue脚手架的 vue-cli2和vue-cli3版本 创建vue项目,vue的初始化详解
|
19天前
|
JavaScript 容器
乾坤qiankun框架搭建 主应用为vue3的项目。
乾坤qiankun框架搭建 主应用为vue3的项目。
120 2
|
29天前
|
JavaScript
Vue CLi脚手架创建第一个VUE项目
Vue CLi脚手架创建第一个VUE项目
34 3
|
10天前
|
数据采集 监控 JavaScript
在 Vue 项目中使用预渲染技术
【10月更文挑战第23天】在 Vue 项目中使用预渲染技术是提升 SEO 效果的有效途径之一。通过选择合适的预渲染工具,正确配置和运行预渲染操作,结合其他 SEO 策略,可以实现更好的搜索引擎优化效果。同时,需要不断地监控和优化预渲染效果,以适应不断变化的搜索引擎环境和用户需求。
|
26天前
|
JavaScript 数据可视化
vue-cli学习二:vue-cli3版本 创建vue项目后,Runtime-Compiler和Runtime-only两个模式详解;vue项目管理器;配置文件的配置在哪,以及如何配置
这篇文章详细介绍了Vue CLI 3版本创建项目时的Runtime-Compiler和Runtime-only两种模式的区别、Vue程序的运行过程、render函数的使用、eslint的关闭方法,以及Vue CLI 2和3版本配置文件的不同和脚手架3版本创建项目的配置文件配置方法。
30 3
vue-cli学习二:vue-cli3版本 创建vue项目后,Runtime-Compiler和Runtime-only两个模式详解;vue项目管理器;配置文件的配置在哪,以及如何配置
|
13天前
|
JavaScript
如何在 Vue 项目中选择合适的模块格式
【10月更文挑战第20天】选择合适的模块格式需要综合考虑多个因素,没有一种绝对正确的选择。需要根据项目的具体情况进行权衡和分析。在实际选择过程中,要保持灵活性,根据项目的发展和变化适时调整模块格式。
17 7
|
9天前
Vue3 项目的 setup 函数
【10月更文挑战第23天】setup` 函数是 Vue3 中非常重要的一个概念,掌握它的使用方法对于开发高效、灵活的 Vue3 组件至关重要。通过不断的实践和探索,你将能够更好地利用 `setup` 函数来构建优秀的 Vue3 项目。
|
13天前
|
JavaScript 前端开发 编译器
在 Vue 项目中使用 ES 模块格式的优点
【10月更文挑战第20天】在 Vue 项目中使用 ES 模块格式具有众多优点,这些优点共同作用,使得项目能够更高效、更可靠地开发和运行。当然,在实际应用中,还需要根据项目的具体情况和需求进行合理的选择和配置。
22 6
|
9天前
|
JavaScript 测试技术 UED
解决 Vue 项目中 Tree shaking 无法去除某些模块
【10月更文挑战第23天】解决 Vue 项目中 Tree shaking 无法去除某些模块的问题需要综合考虑多种因素,通过仔细分析、排查和优化,逐步提高 Tree shaking 的效果,为项目带来更好的性能和用户体验。同时,持续关注和学习相关技术的发展,不断探索新的解决方案,以适应不断变化的项目需求。
|
18天前
|
缓存 JavaScript 前端开发
《基础篇第4章:vue2基础》:使用vue脚手架创建项目
《基础篇第4章:vue2基础》:使用vue脚手架创建项目
62 3