• 免费 WebOffice使用


     目前WebOffice使用比较多主要有两个公司的产品,分别是江西金格和北京点聚。但是点聚的是免费的,虽然有欠缺之处,但是经过个人修改还是比较好用的,关键一点是,它免费啊!
    
          把一个最主要加载页面,如果读懂了这个页面的使用,其他的相当就好理解了。
    
          (如果需要组件和源码的给我留言)
    
         
    
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="DocEdit.aspx.cs" Inherits="DocEdit" %>
    <%@ Import Namespace="System.Data.OleDb"%>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>编辑正文</title>
        <!-- 编辑控件主要集中在此页面 -->
    </head>
    <body>
        <form name="myform" action="#" method="post">
          <% //获取服务器的地址
            string URL = this.Session["URL"].ToString();
            string ID;
            string DocType;
            string DocTitle = "";
            //起草文件,则ID为NULL,否则为记录的主键
            ID = Request.QueryString["ID"];
            if (ID == null || ID == "")
            {
                //获取新建文件的类型        
                DocType = Request.Form["DocType"];
            }
            else
            {
                //获取DocTitle
                DocTitle = Request.QueryString["DocTitle"];
                //获取文件的 类型      
                DocType = Request.QueryString["DocType"];
            }
          
              //默认为word文档,如果异常进入则按word处理,组织部基本处理的都是word
            if (DocType == null || DocType == "")
            {
                DocType = "doc";
            }
     %> 
         <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TR>
                <TD bgColor=#3366cc><IMG height=1 alt="" width=1></TD>
              </TR>
        </TABLE>
    
       <table style=" 100%" border = "0" cellpadding="0" cellspacing="0">
           <tr>
               <td valign="top" bgColor="#e5ecf9" style="height: 21px;"><p align="left"><b><strong>WebOffice演示</strong></b>
        </p></td>
           </tr>
       </table>
       <br /> <br />
        <table width="100%"  border="0" cellpadding="0" cellspacing="1" bgcolor="#3366cc">
    
        <tr bgcolor="#FFFFFF">
            <td bgcolor="#ffffff" rowspan="2">
                <div align="center"><strong>标题</strong></div>
            </td>
            <td rowspan="2">
                <input name="DocTitle" value= "<%if(DocTitle=="" ) {Response.Write("text");} else {Response.Write(DocTitle);} %>" size="14" id="Text1"/></td>
        <td  rowspan="2" >
                  &nbsp; &nbsp;<input name="DocFilePath" type="file" size="34" />
           <input type="button" value="打开本地文件" onclick="return docOpen()" id="Button1" style=" 115px" /></td>
        <td rowspan="2" bgcolor="#FFFFFF" style=" 344px"><div align="center">
          <input type="button" class="btn" value="显示最终文稿" onclick="return UnShowRevisions()" />
                <input type="button"  value="从服务器下载"  onclick="return WebOffice1_NotifyCtrlReady()" style=" 96px"/>
                <input type="button"  value="上传到服务器"  onclick="return SaveDoc()" style=" 98px"/>
                  <input type="button" style="display:none" value="返回"  onclick="return return_onclick()"/></div></td>
        </tr>
    
        <tr bgcolor="#FFFFFF">
     </tr>
    
        <tr bgcolor="#FFFFFF">
       <td valign="top" bgcolor="#FFFFFF" style="height: 560px">
      <!-- -------------------===  Start 嵌套Table ===------------------------------- -->
      <table width="100%"  border="0" cellpadding="0">
    
              <tr>
                <td  class="maintxt">用户名:<br />
                  <input name="UserName" type="text" value="Test" style="74px;" maxlength="10" /><br />
                    <input type="button" value="设置用户"  onclick="return SetUserName()" class="btn" /></td>
        </tr>
    
              <tr><td class="maintxt">
       <hr  size="1" />保护密码:<br />
                  <input name="docPwd" type="text" value="Password" style="74px;" maxlength="10" /><br />
           <input type="button" class="btn" value="保护文档" onclick="return ProtectFull()" /></td>
        </tr>
    
              <tr><td><input type="button" class="btn" value="解除保护" onclick="return UnProtect()" /></td></tr>
    
              <tr><td>
       <hr  size="1" />
         <input  type="button" class="btn" value="修订文档" onclick="return ProtectRevision()" /></td>
        </tr>
    
              <tr><td><input type="button" class="btn" value="显示修订" onclick="return ShowRevisions()" /></td></tr>
              <tr><td><input type="button" class="btn" value="隐藏修订" onclick="return UnShowRevisions()" /></td></tr>
              <tr><td><input type="button" class="btn" value="接受修订" onclick="return AcceptAllRevisions()" /></td></tr>
    
              <tr><td>
       <hr size="1" />
                 <input  type="button" class="btn" value="设置书签" onclick="return addBookmark()" /></td>
           </tr>
    
              <tr>
                  <td rowspan="4">
                      <input  type="button" class="btn" value="套加红头" onclick="return addRedHead()" /></td>
              </tr>
            </table>
         <!-- -------------------=== End 嵌套Table ===------------------------------- -->
                    <select id="Select1" name="select" style=" 83px">
                        <option selected="selected" value="<%=URL %>/template/tmp1.doc">部模板1</option>
                        <option value="<%=URL %>/template/tmp2.doc">市模板1</option>
                        <option value="<%=URL %>/template/tmp3.doc">县模板1</option>
                    </select>
                </td>
    
       <td colspan="3" valign="top" style="height: 560px">
      <!-- -----------------------------== 装载weboffice控件 ==----------------------------------->  
        <script src="LoadWebOffice.js"></script>
            <!-- --------------------------------==  结束装载控件 ==------------------------------------->
       </td>
        </tr>
      </table>
      <br />  <br />
              <table style=" 100%" border = "0" cellpadding="0" cellspacing="0">
                   <tr>
                       <td valign="top" bgColor="#e5ecf9" ><span style="color: red">服务器地址:<%=this.Session["URL"].ToString() %> </span>
                    </td>
                   </tr>
               </table>
              <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
              <TR>
                <TD bgColor=#3366cc><IMG height=1 alt="" width=1></TD>
              </TR>
        </TABLE>
    </form>
    </body>
    </html>
    <script language="javascript" type="text/javascript">
    // ---------------------== 关闭页面时调用此函数,关闭文档--------------------- //
    function window_onunload() {
     document.all.WebOffice1.Close();
    }
     
    // ---------------------------== 解除文档保护 ==---------------------------------- //
    function UnProtect() {
     document.all.WebOffice1.ProtectDoc(0,1, myform.docPwd.value);
    }
    
    // ---------------------------== 设置文档保护 ==---------------------------------- //
    function ProtectFull() {
     document.all.WebOffice1.ProtectDoc(1,1, myform.docPwd.value);
    }
    // -----------------------------== 修订文档 ==------------------------------------ //
    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(myform.UserName.value ==""){
      alert("用户名不能为空");
      myform.UserName.focus();
      return false;
     }
      document.all.WebOffice1.SetCurrUserName(myform.UserName.value);
    }
    
    // -------------------------=== 设置书签套加红头 ===------------------------------ //
    function addBookmark() {
     document.all.WebOffice1.SetFieldValue("mark_1", "安徽省委组织部红头文件::ADDMARK::");     
    }
    
    // -------------------------=== 设置书签套加红头 ===------------------------------ //
    function addRedHead() {
        if(document.getElementById("Select1").value == "")//判断是否选择模板
        {
        alert("请选择模板!")
        return false;
        }
       
        document.all.WebOffice1.SetFieldValue("mark_1", "", "::ADDMARK::");   // 添加书签
     document.all.WebOffice1.SetFieldValue("mark_1", document.getElementById("Select1").value, "::FILE::");
    }
    
    // -----------------------------== 返回首页 ==------------------------------------ //
    function return_onclick() {
     document.all.WebOffice1.Close();
     window.location.href  = "Default.aspx"
    }
    // 打开本地文件
    function docOpen() {
        //alert(myform.DocFilePath.value)
     if(myform.DocFilePath.value == "") {
      alert("文件路径不可以为空");
      myform.DocFilePath.focus();
      return false;
     }
     var flag;
     //LoadOriginalFile接口装载文件
    
     flag = document.all.WebOffice1.LoadOriginalFile(myform.DocFilePath.value,"<%=DocType%>");
     if( 0 == flag){
      alert("文件打开失败,请检查路径是否正确");
      myform.DocFilePath.focus();
      return false;
     } 
    }
     
    // -----------------------------== 保存文档 ==------------------------------------ //
    function SaveDoc() {
      if(myform.DocTitle.value ==""){
      alert("标题不可为空")
      myform.DocTitle.focus();
      return false;
     }
     //恢复被屏蔽的菜单项和快捷键
        document.all.WebOffice1.SetToolBarButton2("Standard",1,3);
        document.all.WebOffice1.SetToolBarButton2("Standard",2,3);
        document.all.WebOffice1.SetToolBarButton2("Standard",3,3);
        document.all.WebOffice1.SetToolBarButton2("Standard",6,3);          
        <%if (DocType   == "doc") {%>
            //恢复文件菜单项
            document.all.WebOffice1.SetToolBarButton2("Menu Bar",1,4);
            //恢复 保存快捷键(Ctrl+S)
            document.all.WebOffice1.SetKeyCtrl(595,0,0);
            //恢复 打印快捷键(Ctrl+P)
            document.all.WebOffice1.SetKeyCtrl(592,0,0);
        <%}else if(DocType   == "xls") {%>
            //恢复文件菜单项
            document.all.WebOffice1.SetToolBarButton2("Worksheet Menu Bar",1,4);        
        <%} %>
    //初始化Http引擎
     document.all.WebOffice1.HttpInit();   
    //添加相应的Post元素
     <%
     if(ID != ""){         
     %>
     document.all.WebOffice1.SetTrackRevisions(0);
     document.all.WebOffice1.ShowRevisions(0);
     document.all.WebOffice1.HttpAddPostString("ID","<%=ID%>");
      <%
      }
      %> 
     document.all.WebOffice1.HttpAddPostString("DocTitle", myform.DocTitle.value);
     document.all.WebOffice1.HttpAddPostString("DocType","<%=DocType%>");
     //把当前文档添加到Post元素列表中,文件的标识符䶿DocContent
     document.all.WebOffice1.HttpAddPostCurrFile("DocContent","");  // 涓婁紶鏂囦欢
     var vtRet;
        //HttpPost执行上传的动仿WebOffice支持Http的直接上传,在upload.aspx的页面中,解析Post过去的数慿
        //拆分出Post元素和文件数据,可以有选择性的保存到数据库中,或保存在服务器的文件中⾿
     //HttpPost的返回值,根据upload.aspx中的设置,返回upload.aspx中Response.Write回来的数据
     vtRet = document.all.WebOffice1.HttpPost("<%=URL %>/upload.aspx");
    
      //alert(vtRet.Trim());
      if(vtRet.Trim() == "succeed"){
      alert("文件上传成功"); 
     }else{
      alert("文件上传失败");
     }
     //return_onclick();
    }
    //-->
    </script>
    <SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
    <!--
        //实现Trim,LTrim和RTrim的功能
        String.prototype.Trim = function()
        {
        return this.replace(/(^s*)|(s*$)/g, "");
        }
    
        String.prototype.LTrim = function()
        {
        return this.replace(/(^s*)/g, "");
        }
    
        String.prototype.RTrim = function()
        {
        return this.replace(/(s*$)/g, "");
        }
    
    function WebOffice1_NotifyCtrlReady() {
     //LoadOriginalFile接口装载文件,
     //如果是编辑已有文件,则文件路径传给LoadOriginalFile的第一个参数
     alert("终于执行这里了!");
     <%
         if (ID == null || ID==""){
        %>
            document.all.WebOffice1.LoadOriginalFile("","<%=DocType%>");
     <%}
     else
     {%>       
           // document.all.WebOffice1.LoadOriginalFile("<%=URL %>/GetDoc.aspx?ID=<%=ID%>","<%=DocType%>");
           //alert("<%=URL %>/GetDoc.aspx?ID=yangweili1");
            document.all.WebOffice1.LoadOriginalFile("<%=URL %>/GetDoc.aspx?ID=yangweili1","doc");
           alert("加载成功了!");
          document.all.WebOffice1.SetTrackRevisions(1);
            document.all.WebOffice1.ShowRevisions(1);   
        <%}%>        
     
    
        //屏蔽标准工具栏的前几个按钮
        document.all.WebOffice1.SetToolBarButton2("Standard",1,1);
        document.all.WebOffice1.SetToolBarButton2("Standard",2,1);
        document.all.WebOffice1.SetToolBarButton2("Standard",3,1);
        document.all.WebOffice1.SetToolBarButton2("Standard",6,1);   
              
       <%if (DocType   == "doc") {%>
            //屏蔽文件菜单项
            document.all.WebOffice1.SetToolBarButton2("Menu Bar",1,1);
            //屏蔽 保存快捷键(Ctrl+S)
            document.all.WebOffice1.SetKeyCtrl(595,-1,0);
            //屏蔽 打印快捷键(Ctrl+P)
            document.all.WebOffice1.SetKeyCtrl(592,-1,0);
        <%}else if(DocType   == "xls") {%>
            //屏蔽文件菜单项
            document.all.WebOffice1.SetToolBarButton2("Worksheet Menu Bar",1,1);        
        <%} %>
    }
    
    //-->
    </SCRIPT>
    <!-- --------------------===  Weboffice初始化完成事件--------------------- -->
    
    <SCRIPT LANGUAGE=javascript FOR=WebOffice1 EVENT=NotifyCtrlReady>
    <!--
     WebOffice1_NotifyCtrlReady() // 在装载完Weboffice(执行<object>...</object>)控件后自动执行WebOffice1_NotifyCtrlReady方法
    //-->
    </SCRIPT>
  • 相关阅读:
    Asp.Net MVC 路由
    EntityFramework执行SQL语句
    partial类与[MetadataType(typeof(类名))]有什么区别?
    Asp.net mvc + .net ef database first 或 model first 时如何添加验证特性
    Entity Framework 学习总结之一:ADO.NET 实体框架概述
    C#中dynamic的正确用法
    Func与Action
    SVN的使用和问题解决方法总结
    微信小程序---绘图
    微信小程序---动画
  • 原文地址:https://www.cnblogs.com/xuxiaoshuan/p/5091571.html
Copyright © 2020-2023  润新知