WebOffice是一款由北京点聚信息技术有限公司提供的完全免费(商业用途也免费)且功能强大的在线Word/excel/wps编辑辅助控件,可以实现: 1.在线编辑Word、Excel、PPT、WPS... ... 点聚WebOffice是基于客户端的ocx控件,它的功能是将Office文档(Word、Excel、WPS)嵌入到浏览器中,并调用Office中各种接口,完成文档编辑工作,然后使用控件的Http接口模拟表单提交,发送到数据处理页面(此文档举例为saveDoc.asp页,代码见演示文件),完成文档的存档工作。 在本地测试的时后,首先要安装插件和证书WebOffice_Setup.exe和孙小钢.pfx,然后用VS来运行示例,不要直接打开HTML,那样会报错的 webOffice控件自动下载是指在打开网页时,网页会自动把webOffice控件下载下来,从而可以将word、excel嵌入到网页中。控件自动下载的相关代码如下:
< object id=WebOffice height=768 width="100%"
style="LEFT: 0px; TOP: 0px" classid="clsid:E77E049B-23FC-4DB8-B756-60529A35FAD5" codebase="../js/WebOffice1.ocx#version=6,0,4,0"> <param name="_ExtentX" value="6350"> <param name="_ExtentY" value="6350"> object>
上面的脚本意思是: 自动更新classid= FF1FE7A0-0578-4FEE-A34E-FB21B277D561 的COM组件, 更新地址为 ../js/WebOffice1.ocx,codebase后的路径为相对路径也可为绝对路径,要更新的最新版本为6,0,4,0。 此时,IE会自动访问注册表,如果发现当前机器未安装或者当前版本低于6,0,4,0,就会自动下载。
WebOffice开发系列02-如何打开文件 单击打开文件按钮,可以在webOffice中打开文件,具体操作如图所示: 打开文档的接口为LoadOriginalFile,其接口描述如下: 原 型: long LoadOriginalFile(BSTR pcFileNameOrUrl, BSTR pcType); 功 能:新建、装载Office文档 参 数: pcFileNameOrUrl: 要装载文件的本地路径或者URL,值为空表示新建文档,如果是在Http的Web环境下,可以传相对路径. pcType: doc:打开、新建Word文件 xls:打开、新建Excel文件 ppt:打开、新建PPT 文件 wps:打开、新建WPS 文件 返回值: 为 0:失败 非0:成功 示 例: JavaScript Code复制内容到剪贴板
document.all.WebOffice1.LoadOriginalFile("http://127.0.0.1/getdoc.asp?id=8", "doc");
// 通过URL打开一个服务器文件,相对路径 document.all.WebOffice1.LoadOriginalFile("/getdoc.asp?id=8", "doc"); document.all.WebOffice1.LoadOriginalFile("./getdoc.asp?id=8", "doc"); // 新建Excel document.all.WebOffice1.LoadOriginalFile("", "xls"); ==================特别注意=============================== 建议在NotifyCtrlReady 事件中调用 LoadOriginalFile 接口,否则有可能出现Word窗口脱离IE界面的问题。 for=WebOffice1> /**************************************************** * * 在装载完Weboffice(执行) * 控件后执行 "WebOffice1_NotifyCtrlReady"方法 * ****************************************************/ WebOffice1_NotifyCtrlReady() WebOffice1_NotifyCtrlReady(){ document.all.WebOffice1.LoadOriginalFile("", "doc"); }
WebOffice开发系列03-修订留痕 webOffice对文档的修订操作提供了丰富的接口,其接口为:document.all.WebOffice1.SetCurrUserName("user_name"); 文档操作的具体步骤如图所示,先以Test用户身份对文档进行编辑,如图所示:
编辑完成上传后,其他用户如果想修订文档可以单击“修订文档”的按钮,接口为: JavaScript Code复制内容到剪贴板
编辑文档的时候字体会针对不同的用户显示不同的颜色,如下图所示: 单击“显示修订”会显示所有其他用户的修改和删除的操作,单击“隐藏修订”时就会隐藏所有的修订, 文档文字的颜色会变成同原文档的文字一样,而且删除的横线也会去掉,其接口如下: JavaScript Code复制内容到剪贴板
// 隐藏修订
document.all.WebOffice1.ShowRevisions(0); // 隐藏修订 document.all.WebOffice1.ShowRevisions(0); 如下图所示:
单击“接受所有修订”则文档的修订就会生效,否则单击“拒绝所有修订”文档的所有修订失效,文档内容和初稿内容一致。 //接受当前所有修订信息 document.all.WebOffice1.SetTrackRevisions(4); 单击“获取修订信息”则会获取所有对文档进行修订的用户的相关信息及修订日期,接口描述如下: 原 型: BSTR GetRevInfo(long lIndex, long lType); 功 能:获取修订节点的信息(修订人,修订的时间,修订的动作) 参 数: lIndex: 修订的节点编号 lType: 获取的信息编号 返回值: 示 例: JavaScript Code复制内容到剪贴板
//1.获取修订的用户
vUserName = document.all.WebOffice1.GetRevInfo(i,0); //2.获取修订的时间 vDate = new String(document.all.WebOffice1.GetRevInfo(i,1)); //3.获取修订的动作 var vRet = document.all.WebOffice1.GetRevInfo(i,2); vRet == "1":表示"插入"的操作 vRet == "2":表示"删除"的操作 //4.获取修订的内容 vUserName = document.all.WebOffice1.GetRevInfo(i,3); //总体的例子代码 var vCount; vCount = document.all.WebOffice1.GetRevCount(); var vOpt = 0; var vDate; for(var i=1; i<= vCount; i++){ vOpt = document.all.WebOffice1.GetRevInfo(i,2); if("1" == vOpt){ vOpt = "插入"; }else if("2" == vOpt){ vOpt = "删除"; }else{ vOpt = "未知操作"; } vDate = new String(document.all.WebOffice1.GetRevInfo(i,1)); vDate = parseFloat(vDate); dateObj = new Date(vDate); alert(dateObj.getYear() + "年" + dateObj.getMonth() + 1 + "月" + dateObj.getDate() +"日" + dateObj.getHours() +"时" + dateObj.getMinutes() +"分" + dateObj.getSeconds() +"秒" ); alert("用户:"+document.all.WebOffice1.GetRevInfo(i,0) + "\r\n操作:" + vOpt + "\r\n内容:" + document.all.WebOffice1.GetRevInfo(i,3)); }
WebOffice常用接口调用 JavaScript Code复制内容到剪贴板
// ---------------------=== 控件初始化WebOffice方法 ===---------------------- //
function WebOffice1_NotifyCtrlReady() { document.all.WebOffice1.LoadOriginalFile("", "doc"); } // ---------------------=== 新建文档 ===---------------------- // function newDoc() { var doctype = document.all.doctype.value; document.all.WebOffice1.LoadOriginalFile("", doctype); } // ---------------------=== 显示打印对话框 ===---------------------- // function showPrintDialog() { document.all.WebOffice1.PrintDoc(1); } // ---------------------=== 直接打印 ===---------------------- // function zhiPrint() { document.all.WebOffice1.PrintDoc(0); } // ---------------------== 关闭页面时调用此函数,关闭文件 ==---------------------- // function window_onunload() { document.all.WebOffice1.Close(); } // ---------------------------== 解除文档保护 ==---------------------------------- // function UnProtect() { document.all.WebOffice1.ProtectDoc(0, 1, document.all.docPwd.value); } // ---------------------------== 设置文档保护 ==---------------------------------- // function ProtectFull() { document.all.WebOffice1.ProtectDoc(1, 1, document.all.docPwd.value); } // ---------------------------== 禁止打印 ==---------------------------------- // function notPrint() { document.all.WebOffice1.SetSecurity(0x01); } // ---------------------------== 恢复允许打印 ==---------------------------------- // function okPrint() { document.all.WebOffice1.SetSecurity(0x01 + 0x8000); } // ---------------------------== 禁止保存 ==---------------------------------- // function notSave() { document.all.WebOffice1.SetSecurity(0x02); } // ---------------------------== 恢复允许保存 ==---------------------------------- // function okSave() { document.all.WebOffice1.SetSecurity(0x02 + 0x8000); } // ---------------------------== 禁止复制 ==---------------------------------- // function notCopy() { document.all.WebOffice1.SetSecurity(0x04); } // ---------------------------== 恢复允许复制 ==---------------------------------- // function okCopy() { document.all.WebOffice1.SetSecurity(0x04 + 0x8000); } // ---------------------------== 禁止拖动 ==---------------------------------- // function notDrag() { document.all.WebOffice1.SetSecurity(0x08); } // ---------------------------== 恢复拖动 ==---------------------------------- // function okDrag() { document.all.WebOffice1.SetSecurity(0x08 + 0x8000); } // -----------------------------== 修订文档 ==------------------------------------ // function ProtectRevision() { document.all.WebOffice1.SetTrackRevisions(1) } // -----------------------------== 隐藏修订 ==------------------------------------ // function UnShowRevisions() { document.all.WebOffice1.ShowRevisions(0); } // --------------------------== 显示当前修订 ==---------------------------------- // function ShowRevisions() { document.all.WebOffice1.ShowRevisions(1); } // -------------------------== 接受当前所有修订 ==------------------------------- // function AcceptAllRevisions() { document.all.WebOffice1.SetTrackRevisions(4); } // ---------------------------== 设置当前操作用户 ==------------------------------- // function SetUserName() { if (document.all.UserName.value == "") { alert("用户名不可为空") document.all.UserName.focus(); return false; } document.all.WebOffice1.SetCurrUserName(document.all.UserName.value); } // -------------------------=== 设置书签 ===------------------------------ // function addBookmark() { document.all.WebOffice1.SetFieldValue("mark_1", "北京信息技术有限公司", "::ADDMARK::"); } // -------------------------=== 设置书签套加红头 ===------------------------------ // function addRedHead() { document.all.WebOffice1.SetFieldValue("mark_1", "", "::ADDMARK::"); // 添加书签 document.all.WebOffice1.SetFieldValue("mark_1", "E:\\tem1.doc", "::FILE::"); } // -------------------------=== 设置书签插入图片 ===------------------------------ // function addImage() { document.all.WebOffice1.SetFieldValue("mark_1", "", "::ADDMARK::"); // 添加书签 document.all.WebOffice1.SetFieldValue("mark_1", "c:\\image\\logo.gif", "::JPG::"); } // -----------------------------== 返回首页 ==------------------------------------ // function return_onclick() { document.all.WebOffice1.Close(); window.location.href = "index.jsp" } // 打开本地文件 function docOpen() { document.all.WebOffice1.LoadOriginalFile("open", "doc"); } // -----------------------------== 保存文档 ==------------------------------------ // function newSave() { document.all.WebOffice1.Save(); } // -----------------------------== 另存为文档 ==------------------------------------ // function SaveAsTo() { document.all.WebOffice1.ShowDialog(84); } // -----------------------------== 隐藏菜单 ==------------------------------------ // function notMenu() { document.all.WebOffice1.SetToolBarButton2("Menu Bar", 1, 8); } // -----------------------------== 显示菜单 ==------------------------------------ // function okMenu() { document.all.WebOffice1.SetToolBarButton2("Menu Bar", 1, 11); } // -----------------------------== 隐藏常用工具栏 ==------------------------------------ // function notOfter() { document.all.WebOffice1.SetToolBarButton2("Standard", 1, 8); } // -----------------------------== 显示常用工具栏 ==------------------------------------ // function okOfter() { document.all.WebOffice1.SetToolBarButton2("Standard", 1, 11); } // -----------------------------== 隐藏格式工具栏 ==------------------------------------ // function notFormat() { document.all.WebOffice1.SetToolBarButton2("Formatting", 1, 8); } // -----------------------------== 显示格式工具栏 ==------------------------------------ // function okFormat() { document.all.WebOffice1.SetToolBarButton2("Formatting", 1, 11); } function ShowToolBar_onclick() { //通过Document->application->CommandBars 获取到菜单对象 var vObj = document.all.WebOffice1.GetDocumentObject().Application.CommandBars("电子印章"); vObj.Visible = !vObj.Visible } function AddSeal_onclick() { //通过Document->application->CommandBars 获取到菜单对象 var vObj = document.all.WebOffice1.GetDocumentObject().Application.CommandBars("电子印章"); if (vObj) vObj.Controls("盖章").Execute(); } 下载地址:http://www./211.html |
|
来自: ThinkTank_引擎 > 《网页展示office》