NTKO在线office控件使用实例

目录

1. NTKO在线office控件使用实例

1.1. 基础介绍

1.2. 基本原理

1.3. 实例

1.3.1. 打开、保存部分代码

1.3.2. 动态设值

1. NTKO在线office控件使用实例

1.1. 基础介绍

  在线Office基础功能有在线打开、修改、保存文档、动态插入数据等常用功能。具体的介绍请直接参考官方的文档。

1.2. 基本原理

  当控件向后台请求一个链接加载word文档的时候,对应的后台处理要有一个文件下载的方法,而相似地,当控件向后台保存一个word文档的时候,后台也要有一个文件上传处理的方法。

1.3. 实例

1.3.1. 打开、保存部分代码

  1      var path="<%=basePath%>";
  2         var ntkoobj=null;//控件对象
  3         var isFileOpened;//控件是否打开文档
  4         var reloadFlg=0;//重新获取标志
  5         
  6         /**ntko工具对象**/
  7         var ntkoTool={
  8             newDoc:function(docType){
  9                 //新建文档
 10                 ntkoobj = document.all("TANGER_OCX"); //"TANGER_OCX"是网页中的NTKO OFFICE文档控件的ID
 11                 ntkoTool.disableMenu();
 12                 if(null == ntkoobj){ 
 13                     alert("NTKO OFFICE not exist!");
 14                     return;
 15                 }
 16                 if(docType==null||0 == docType.length){
 17                     ntkoobj.CreateNew("Word.Document");//默认是word
 18                 }else{
 19                     if(docType=="word"){
 20                         ntkoobj.CreateNew("Word.Document");
 21                     }else if(docType=="excel"){
 22                         ntkoobj.CreateNew("Excel.Sheet");
 23                     }else if(docType=="ppt"){
 24                         ntkoobj.CreateNew("PowerPoint.Show");
 25                     }
 26                 }
 27             },
 28             openDoc:function(docURL){
 29                 //打开文档
 30                 ntkoobj = document.all("TANGER_OCX"); //"TANGER_OCX"是网页中的NTKO OFFICE文档控件的ID
 31                 ntkoTool.disableMenu();
 32                 if(null == ntkoobj){ 
 33                     alert("NTKO OFFICE not exist!");
 34                     return;
 35                 }
 36                 //打开服务器上的文档
 37                 ntkoobj.BeginOpenFromURL(docURL);
 38             },
 39             disableMenu:function(){
 40                 //禁用菜单
 41                 ntkoobj.FileSave=false;
 42                 ntkoobj.FileSaveAs=false;
 43                 ntkoobj.FileNew=false;
 44                 ntkoobj.FileOpen=false;
 45                 ntkoobj.FileClose=false;
 46             },
 47             saveDoc:function(docURL,noInfo){
 48                 //保存文档
 49                 var fileType="";
 50                 if(isFileOpened){
 51                     switch (ntkoobj.doctype){
 52                         case 1:
 53                             fileType = "Word.Document";
 54                             break;
 55                         case 2:
 56                             fileType = "Excel.Sheet";
 57                             break;
 58                         case 3:
 59                             fileType = "PowerPoint.Show";
 60                             break;
 61                         case 4:
 62                             fileType = "Visio.Drawing";
 63                             break;
 64                         case 5:
 65                             fileType = "MSProject.Project";
 66                             break;
 67                         case 6:
 68                             fileType = "WPS Doc";
 69                             break;
 70                         case 7:
 71                             fileType = "Kingsoft Sheet";
 72                             break;
 73                         default :
 74                             fileType = "unkownfiletype";
 75                     }
 76                     var filePath=$("#filePath").val();
 77                     var fileName=$("#fileName").val();
 78                     var para="?filePath="+filePath+"&fileName="+fileName;
 79                     var result = ntkoobj.saveToURL(docURL+para,"file","fileType="+fileType,fileName,"docFileForm",true);
 80                     if(noInfo==null){
 81                         if(result=='ok'){
 82                             alert("文件保存成功!");
 83                         }
 84                     }
 85                 }else{
 86                     //alert("没有打开的文档可以保存!");
 87                 }
 88             },
 89             closeDoc:function(){
 90                 if(isFileOpened){
 91                     if(confirm("关闭文档前,系统将先保存文档。是否关闭?")){
 92                         ntkoTool.saveDoc('<%=basePath%>/ntko/saveWord.shtml','noInfo');
 93                         ntkoobj.close();
 94                         isFileOpened=false;
 95                     }
 96                 }else{
 97                     //alert("没有文档可关闭!");
 98                 }
 99             },
100             getTdValue:function(table,rowIndex,colIndex){
101                 var start=table.Cell(rowIndex,colIndex).range.start;
102                 var end=table.Cell(rowIndex,colIndex).range.end-1;
103                 return ntkoobj.ActiveDocument.range(start,end).text;
104             },
105             getPageSize:function(){
106                 //获取word的总页数,和当前页数
107                 var curpage=TANGER_OCX.ActiveDocument.Application.Selection.Information(3);
108                 var pagenum=TANGER_OCX.ActiveDocument.Application.Selection.Information(4);
109                 var arr=new Array();
110                 arr[0]=pagenum;
111                 arr[1]=curpage;
112                 return arr;
113             }
114         };

 

 

1.3.2. 动态设值

1、在表格末尾加一行设值:

 1 document.all.item("TANGER_OCX").ActiveDocument.Tables(1).rows.add(); 2 table.Cell(0,1).range.Text="123"; 

2、在表格指定行之前插入一行设值:

1 var rg =document.all.item("TANGER_OCX").ActiveDocument.Tables(1).Cell(1,1).range;//获取第x行,y列的单元格
2 document.all.item("TANGER_OCX").ActiveDocument.Tables(1).rows.add(rg);//在rg单元格所在行的前一行插入行
3 table.Cell(2,1).range.Text="123";

3、书签方式设值:

 1 ntkoobj.SetBookmarkValue("name","xmq");//模版文档要先加书签 

posted @ 2017-01-19 16:29  迢迢  阅读(12600)  评论(0编辑  收藏  举报