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");//模版文档要先加书签