WebOffice是一款由北京点聚信息技术有限公司提供的完全免费(商业用途也免费)且功能强大的在线Word/excel/wps编辑辅助控件,可以实现:

1.在线编辑Word、Excel、PPT、WPS... ...
2.全面支持MS Office的界面定制,包括对于Office2007的全面支持
3.修订留痕
4.限制打印、保存、复制
5.直接保存到服务器,支持标准Http Post协议
6.强大的书签管理
7.套红、文档保护
8.模板管理
9.其他功能扩展

点聚WebOffice是基于客户端的ocx控件,它的功能是将Office文档(WordExcelWPS)嵌入到浏览器中,并调用Office中各种接口,完成文档编辑工作,然后使用控件的Http接口模拟表单提交,发送到数据处理页面(此文档举例为saveDoc.asp页,代码见演示文件),完成文档的存档工作。点聚weboffice 6.0 ASP.NET 在线Word,excel,wps编辑控件

点聚weboffice 6.0 ASP.NET 在线Word,excel,wps编辑控件

在本地测试的时后,首先要安装插件和证书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中打开文件,具体操作如图所示:

点聚weboffice 6.0 ASP.NET 在线Word,excel,wps编辑控件

打开文档的接口为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用户身份对文档进行编辑,如图所示:

点聚weboffice 6.0 ASP.NET 在线Word,excel,wps编辑控件

 

编辑完成上传后,其他用户如果想修订文档可以单击“修订文档”的按钮,接口为:

JavaScript Code复制内容到剪贴板
  • // 开始修订
    document.all.WebOffice1.SetTrackRevisions(1);
    // 接受修订
    document.all.WebOffice1.SetTrackRevisions(4);
      
  •  

    编辑文档的时候字体会针对不同的用户显示不同的颜色,如下图所示:

    点聚weboffice 6.0 ASP.NET 在线Word,excel,wps编辑控件

    单击“显示修订”会显示所有其他用户的修改和删除的操作,单击“隐藏修订”时就会隐藏所有的修订, 文档文字的颜色会变成同原文档的文字一样,而且删除的横线也会去掉,其接口如下:

    JavaScript Code复制内容到剪贴板

    // 隐藏修订
    document.all.WebOffice1.ShowRevisions(0);
    // 隐藏修订
    document.all.WebOffice1.ShowRevisions(0);

    如下图所示:

    点聚weboffice 6.0 ASP.NET 在线Word,excel,wps编辑控件

     

    单击“接受所有修订”则文档的修订就会生效,否则单击“拒绝所有修订”文档的所有修订失效,文档内容和初稿内容一致。 //接受当前所有修订信息 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 6.0 ASP.NET 在线Word,excel,wps编辑控件

     

    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.51ascx.com/211.html

    相关文章:

    • 2021-12-10
    • 2021-12-14
    • 2021-08-29
    • 2021-12-01
    • 2021-12-19
    • 2021-12-20
    • 2021-11-05
    猜你喜欢
    • 2021-11-05
    • 2021-12-10
    • 2021-12-20
    • 2021-12-20
    • 2022-01-02
    • 2021-12-15
    • 2021-09-14
    • 2021-12-20
    相关资源
    相似解决方案