目錄
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");//模版文檔要先加書簽