目录
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");//模版文档要先加书签
来源:https://www.cnblogs.com/xmqa/p/6307168.html