系统检测到你所使用的浏览器版本较低,推荐使用 IE9及以上谷歌(Chrome)火狐(Firefox)浏览器。

支持MVC多层结构、任意层次架构集成


更加方便存取服务器文档,更加高效处理文档动态内容

全面支持跨浏览器、自定义菜单和页面缩略图显示等等

WebOffice控件产品架构原理

1、 浏览器通过ocx.js(或webofficeocx.js)文件加载控件,在ocx.js代码中的获取控件ID,一般名称为:WebOffice,从而得到JS编控的控件对象,具对代码表示如:document.getElementById("WebOffice")
2、 在网页body标签onload代码中加入JS,用于设置控件打开或新建一个WORD、EXCEL等文档,在打开文档考虑网络速度等原因最好在控件打开文档前设置一段JS代码用于延时加载控件类似代码如下:
WebOffice = document.getElementById("WebOffice");
if (WebOffice !='')
	{ 		//等待控件初始化完毕,时间长短可以根据网络速度设定。
		setTimeout('openfile()',100);
	}
3、 接下来即可执行控件的打开或新建方法,在新建文档时建议统一用DOC、XLS、PPT格式,实现OFFICE2003与高版本的OFFICE的DOCX、XLSX,PPTX格式兼容。类似代码如下(注意参数格式):
document.getElementById("WebOffice").Open(strOpenUrl,true,"Word.Document","","");		 
document.getElementById("WebOffice").Open(strOpenUrl,true,"Excel.Sheet","","");
document.getElementById("WebOffice").Open(strOpenUrl,true,"PowerPoint.Show","",""); 	 
document.getElementById("WebOffice").CreateNew("Excel.Sheet.8");	 
document.getElementById("WebOffice").CreateNew("PowerPoint.Show"); 			 
document.getElementById("WebOffice").CreateNew("Word.Document");	
新建文档时也可以采用模板的方式新建文档,方法就是打开一个现成的模板文件即可,类似代码如下:
strRoot=http://www.aaa.com/;
document.getElementById("WebOffice").Open(strRoot+'temp/excel.xls',true,"Excel.Sheet","","");
4、 接下来控件会触发加载事件,执行上面Open或CreatNew方法,当打开文档时,控件实现GET请求到指定的URL下载Word或Excel文档,URL格式类似如下:http://www.aaa.com/writefile.php?id=21
5、 Web服务器收到控件发来的URL请求后,执行如上述Writefile.php代码脚本,代码脚本执行相应动作,依参数ID值到服务器数据库或硬盘对应位置找到OFFICE文档,以二进制格式读取WORD或Excel文档,返回给WEB服务器。
6、 WEB服务器得到OFFICE文档的二进制数据流后,通过网络传递给控件接收,当控件接收到完整的WORD或EXCEL等文档后,调用控件内部方法,实现打开WORD文档并显示到前端Web页面。
7、 当用户编辑好文档后,点击网页上的保存按钮,网页上的保存按钮通过JS或Vbscript调用控件的SAVE方法保存到服务器指定位置,类似代码如下:
strURL=”http://www.aaa.com/webofficephp/php/uploadedit.php?oper=edit&flsid=956.doc&flag=1”
document.getElementById("WebOffice").Save(strURL);
上述代码重点是URL相关的脚本代码和参数设置,如上述代码参数是:oper代码是修改还是新建保存 ,flsid是文档在服务器数据库(或硬盘)对应位置的ID号,FLAG是文档类型,1表示doc格式,2,表示xls格式,3表示ppt格式,11表示DOCX格式 12表示XLS格式,13表示pptx格式等等,具体方式可以技术开发人员依自身需求而定,上述不是必须采用,但建议用户使用上述FLAG标记方式,用于记住文档格式,供控件以后打开时设置对应参数。
  • 销售/技术咨询电话

    158-7671-1031
    020-82352035
  • 在线咨询

    357-662-62
    539-287-16
  • 即刻体验