WebOffice控件的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebOffice控件的使用相关的知识,希望对你有一定的参考价值。

Java代码  技术分享
  1. SetMsgByName (String, String)    设置字段值  
  2. GetMsgByName(String)        取得字段值  
  3. MsgTextClear()                     清除所有字段  
  4. MsgError()                   取得错误信息  
  5. MsgError(String)          设置错误信息  
  6. MsgErrorClear()            清除错误信息  
  7. MsgVariant()                 取得信息包内容  
  8. MsgVariant(byte[])        设置信息包内容  
  9. MsgVersion()                取得信息包版本  
  10. MsgFileLoad(String)             装入文件  
  11. MsgFileSave(String)             保存文件  
  12. MsgFileBody()              取得文件内容  
  13. MsgFileBody(byte[])      设置文件内容  
  14. MsgFileSize()                取得文件大小  
  15. MsgFileSize(int)            设置文件大小  
  16. MsgFileClear()              清除文件内容  
  17.   
  18. 接口说明:  
  19. SetMsgByName (FieldName String, FieldValue String)   
  20. 功能说明 设置字段值  
  21.                             输入参数 设置字段域的名称与所对应的值。  
  22.                             FieldName String 字段域的名称  
  23.                              FieldValue String 字段域的值  
  24. 输出参数 Boolean=成功/失败。  
  25. 特别说明 系统公共  
  26. GetMsgByName(FieldName String)        
  27.                      功能说明 取得字段值  
  28.                      输入参数 FieldName String 字段域的名称。  
  29. 输出参数 String =字段域的值。  
  30. 特别说明 系统公共  
  31. MsgTextClear()                       
  32.                      功能说明 清除所有字段  
  33.                       输入参数 无。  
  34. 输出参数 无。  
  35. 特别说明 系统公共  
  36. MsgFileLoad(FileName String)               
  37.                      功能说明 装入文件  
  38.                       输入参数 FieldName String 服务器磁盘文件名称。  
  39. 输出参数 Boolean=成功/失败。  
  40. 特别说明 系统公共  
  41. MsgFileSave(FileName String)               
  42.                     功能说明 保存文件  
  43.                      输入参数 FieldName String 服务器磁盘文件名称。  
  44. 输出参数 Boolean=成功/失败。  
  45. 特别说明 系统公共  
  46. MsgFileBody()                
  47.       功能说明 取得文件内容  
  48.          输入参数 无。  
  49. 输出参数 byte[],文件内容字节数组。  
  50. 特别说明 系统公共  
  51. MsgFileBody(byte[])        
  52.                      功能说明 设置文件内容  
  53.                       输入参数 byte[],文件内容字节数组。  
  54. 输出参数 无。  
  55. 特别说明 系统公共  
  56. MsgFileSize()                  
  57.                      功能说明 取得文件大小  
  58.                       输入参数 无。  
  59. 输出参数 long 文件大小。  
  60. 特别说明 系统公共  
  61. MsgFileSize(int)              
  62.                      功能说明 设置文件大小  
  63.                       输入参数 int 文件大小。  
  64. 输出参数 无。  
  65. 特别说明 系统公共  
  66. MsgFileClear()                
  67.                      功能说明 清除文件内容  
  68.                      输入参数 无。  
  69. 输出参数 无。  
  70. 特别说明 系统公共  
  71.   
  72. MsgError()                     
  73.                      功能说明 取得错误信息  
  74.                      输入参数 无。  
  75. 输出参数 String 错误信息。  
  76. 特别说明 系统公共  
  77. MsgError(String)            
  78.                      功能说明 设置错误信息  
  79.                      输入参数 String 错误信息内容。  
  80. 输出参数 无。  
  81. 特别说明 系统公共  
  82. MsgErrorClear()              
  83.                      功能说明 清除错误信息  
  84.                       输入参数 无。  
  85. 输出参数 无。  
  86. 特别说明 系统公共  
  87. MsgVariant()                   
  88.                      功能说明 取得信息包内容  
  89.                     输入参数 无。  
  90. 输出参数 byte[] 信息包所有内容。  
  91. 特别说明 系统公共  
  92. MsgVariant(byte[])          
  93.                      功能说明 设置信息包内容  
  94.                       输入参数 byte[] 数据包内容。  
  95. 输出参数 Boolean=成功/失败。  
  96. 特别说明 系统公共  
  97. MsgVersion()                  
  98.                      功能说明 取得信息包版本  
  99.                       输入参数 无。  
  100. 输出参数 String 版本信息。  
  101. 特别说明 系统公共  
  102.   
  103. 如何设置全局变量  
  104. 设置全局变量(假设form的名字为webform):  
  105. webform.WebOffice.WebUrl="<%=mServerUrl%>";  
  106. webform.WebOffice.RecordID="<%=mRecordID%>";  
  107. webform.WebOffice.Template="<%=mTemplate%>";  
  108. webform.WebOffice.FileName="<%=mFileName%>";  
  109. webform.WebOffice.FileType="<%=mFileType%>";  
  110. webform.WebOffice.EditType="<%=mEditType%>";  
  111. webform.WebOffice.UserName="<%=mUserName%>";  
  112. 其中, mServerUrl 是指服务器端的处理程序,演示程序为OfficeServer这个文件(必填);  
  113. mRecordID 是指当前要打开的文档记录唯一编号,通过这个编号,可以定位该  
  114. 文档记录(可以为空);  
  115. mTemplate 是指当前文档使用的模版(可以为空);  
  116. mFileName是指当前文档的中文名称(可以为空);  
  117. mFileType 是指当前文档的类型(必填);  
  118. mEditType 是指当前文档的打开方式(必填);  
  119. mUserName是指当前用户名(必填);  
  120. 通常我们通过mRecordID来定位文档,但也可以通过文件名称来定位文档,这需要看用户的需求来定。  
  121.   
  122. 如何调用iMsgServer2000.class组件  
  123. 申明调用对象:  
  124.       private DBstep.iMsgServer2000 MsgObj;  
  125.       生成对象实例:  
  126. MsgObj=new DBstep.iMsgServer2000();  
  127.        取得客户端WebEditor.ocx发送的数据包  
  128. MsgObj.MsgVariant(ReadPackage(request));  
  129. 返回处理后的数据包  
  130. SendPackage(response);  
  131. 其中ReadPackage和SendPackage函数如下:   
  132. //取得客户端发来的数据包  
  133. private byte[] ReadPackage(HttpServletRequest request){  
  134. byte mStream[]=null;  
  135. int totalRead = 0;  
  136. int readBytes = 0;  
  137. int totalBytes = 0;  
  138. try{  
  139.     totalBytes = request.getContentLength();  
  140.     mStream = new byte[totalBytes];  
  141.     while(totalRead < totalBytes){  
  142.       request.getInputStream();  
  143.       readBytes = request.getInputStream().read(mStream, totalRead, totalBytes - totalRead);  
  144.       totalRead += readBytes;  
  145.       continue;  
  146.     }  
  147. }catch (Exception e){  
  148.     System.out.println(e.toString());  
  149. }  
  150. return (mStream);  
  151. }  
  152.   
  153. //发送处理后的数据包  
  154. private void SendPackage(HttpServletResponse response){  
  155. try{  
  156.     ServletOutputStream OutBinarry=response.getOutputStream() ;  
  157.     OutBinarry.write(MsgObj.MsgVariant()) ;  
  158.     OutBinarry.flush();  
  159.     OutBinarry.close();  
  160. }catch(Exception e){  
  161.     System.out.println(e.toString());  
  162. }  
  163. }  
  164.   
  165. 服务器端可以获得的全局参数;其中OPTION是OCX函数操作参数,  
  166. 不同的操作,这个值不同  
  167. mOption    = MsgObj.GetMsgByName("OPTION")   
  168. mRecordId = MsgObj.GetMsgByName("RECORDID")  
  169. mTemplate = MsgObj.GetMsgByName("TEMPLATE")     
  170. mFileName = MsgObj.GetMsgByName("FILENAME")  
  171. mFileType = MsgObj.GetMsgByName("FILETYPE")     
  172. mUserName = MsgObj.GetMsgByName("USERNAME")  
  173. 此时,mOption 就会得到 “LOADFILE”这样的操作,既  
  174. mOption = “LOADFILE”  
  175.   
  176. 请注意:任何操作都会得到  
  177. mRecordId = MsgObj.GetMsgByName("RECORDID")  
  178. mTemplate = MsgObj.GetMsgByName("TEMPLATE")   
  179. mFileName = MsgObj.GetMsgByName("FILENAME")  
  180. mFileType = MsgObj.GetMsgByName("FILETYPE")   
  181. mUserName = MsgObj.GetMsgByName("USERNAME")  
  182. 这些全局变量的值,提供给编程开发使用.  
  183. LoadFile()   
  184. 功能: 打开Office文档,首先打开RecordID指定的文件   
  185. 调用: WebOffice.LoadFile()   
  186. 说明: Office公共,服务器应用程序操作如下:   
  187. LOADFILE     调入RecordID指定的文件  
  188.   
  189. 操作命令  
  190. 服务器应用程序操作如下  
  191. WebOpen()  
  192. 操作顺序为:  
  193. LOADFILE     调入RecordID指定的文件  
  194. mOption    = MsgObj.GetMsgByName("OPTION")   
  195. mOption的值为“LOADFILE”  
  196. 说明:  
  197. 1、此函数发送此LOADFILE操作  
  198. 2、系统默认对数据库操作;  
  199. 如果对数据库操作,只要把数据库中文档的内容付给MsgObj.MsgFileBody就可以了,  
  200. 如果想对文件进行操作,就不能使用MsgObj.MsgFileBody,只要使用MsgObj.MsgFileLoad(“文件名”)就可以把具体的服务器上的文件调入进来。  
  201.   
  202. 实例:  
  203. IE客户端 javascript调用方法:  
  204. function LoadDocument(){  
  205. try{  
  206.    webform.WebOffice.LoadFile();    //打开该文档  
  207.    StatusMsg(webform.WebOffice.Status);  
  208. }catch(e){}  
  209. }  
  210. JSP服务端处理方法  
  211. 如果文档保存在服务器的数据库中  
  212.         mOption=MsgObj.GetMsgByName("OPTION") ;  
  213.    //调用文档  
  214.         if(mOption.equalsIgnoreCase("LOADFILE")){  
  215.           mRecordID=MsgObj.GetMsgByName("RECORDID");     //取得文档编号  
  216.           //mFileName=MsgObj.GetMsgByName("FILENAME");       //取得文档名称  
  217.           //mFileType=MsgObj.GetMsgByName("FILETYPE");       //取得文档类型  
  218.           MsgObj.MsgTextClear();                          //清除所有变量  
  219.           通过mRecordID找到数据库中的记录,然后将数据库中的文件流付给mFileBody   
  220. //调入文档  
  221.           if (如果读取文件流成功){  
  222.             MsgObj.MsgFileBody(mFileBody);                //将文件信息打包  
  223.             MsgObj.SetMsgByName("STATUS","打开成功!");    //设置状态信息  
  224.             MsgObj.MsgError("");                          //清除错误信息  
  225.           }else{  
  226.             MsgObj.MsgError("打开失败!");                //设置错误信息  
  227.           }  
  228.         }  
  229.           
  230. 如果文档保存在服务器的文件中  
  231. mOption=MsgObj.GetMsgByName("OPTION") ;  
  232. //调用文档  
  233.         if(mOption.equalsIgnoreCase("LOADFILE")){  
  234.           mRecordID=MsgObj.GetMsgByName("RECORDID");     //取得文档编号  
  235.           mFileName=MsgObj.GetMsgByName("FILENAME");     //取得文档名称  
  236.           mFileType=MsgObj.GetMsgByName("FILETYPE");     //取得文档类型  
  237.           MsgObj.MsgTextClear();  
  238.     //调入文档        
  239.           if (MsgObj.MsgFileLoad(“路径”+mFileName)) {  
  240.             MsgObj.SetMsgByName("STATUS","打开成功!");    //设置状态信息  
  241.             MsgObj.MsgError("");                          //清除错误信息  
  242.           }else{  
  243.             MsgObj.MsgError("打开失败!");                //设置错误信息  
  244.           }  
  245.         }  
  246.           
  247. SaveFile()   
  248. 功能: 保存Office文档。   
  249. 调用: WebOffice.SaveFile()   
  250. 说明: Office公共,服务器应用程序操作如下:   
  251. SAVEFILE 保存RecordID指定的文件   
  252.   
  253. 操作命令  
  254. 服务器应用程序操作如下  
  255. WebSave()  
  256. SAVEFILE保存RecordID指定的文件  
  257. mOption    = MsgObj.GetMsgByName("OPTION")   
  258. mOption的值为“SAVEFILE”  
  259.   
  260. 说明:  
  261. 系统默认对数据库操作;  
  262. 如果对数据库操作,只要把MsgObj.MsgFileBody的内容取出,保存到数据库中就可以了,  
  263. 如果想对文件进行操作,只要使用MsgObj.MsgFileSave(“文件名”)就可以把文件写到服务器上  
  264.   
  265. 实例:  
  266. IE客户端 Javascript调用方法:  
  267. function SaveDocument(){  
  268. try{  
  269.    webform.WebOffice.SaveFile();    //保存文档  
  270.    StatusMsg(webform.WebOffice.Status);  
  271. }catch(e){}  
  272. }  
  273.   
  274. JSP服务端处理方法  
  275. 如果文档保存在服务器的数据库中  
  276.         mOption=MsgObj.GetMsgByName("OPTION") ;  
  277.         //请求保存文档  
  278.         if(mOption.equalsIgnoreCase("SAVEFILE")) {  
  279.           mRecordID=MsgObj.GetMsgByName("RECORDID");     //取得文档编号  
  280.           mFileName=MsgObj.GetMsgByName("FILENAME");     //取得文档名称  
  281.           mFileType=MsgObj.GetMsgByName("FILETYPE");     //取得文档类型  
  282.           mFileSize=MsgObj.MsgFileSize();                //取得文档大小  
  283.           mFileDate=DbaObj.GetDateTime();                 //取得文档时间  
  284.           mFileBody=MsgObj.MsgFileBody();                //取得文档内容  
  285.           mUserName= MsgObj.GetMsgByName("USERNAME");     //取得保存用户名称  
  286.           mDescript="通用版本";                           //版本说明  
  287.           MsgObj.MsgTextClear();  
  288.           if (将mFileBody里的文件流信息及其他信息保存到数据库中) //保存文档内容  
  289.           {  
  290.             MsgObj.SetMsgByName("STATUS", "保存成功!");   //设置状态信息  
  291.             MsgObj.MsgError("");                          //清除错误信息  
  292.           }else{  
  293.             MsgObj.MsgError("保存失败!");                 //设置错误信息  
  294.           }  
  295.           MsgObj.MsgFileClear();  
  296.         }  
  297.           
  298. 如果文档保存在服务器的文件中  
  299.         mOption=MsgObj.GetMsgByName("OPTION") ;  
  300.         if(mOption.equalsIgnoreCase("SAVEFILE"))           //请求保存文档  
  301.         {  
  302.           mRecordID=MsgObj.GetMsgByName("RECORDID");     //取得文档编号  
  303.           mFileName=MsgObj.GetMsgByName("FILENAME");     //取得文档名称  
  304.           mFileType=MsgObj.GetMsgByName("FILETYPE");     //取得文档类型  
  305.           mFileSize=MsgObj.MsgFileSize();                //取得文档大小  
  306.           mFileDate=DbaObj.GetDateTime();                 //取得文档时间  
  307.           mUserName=MsgObj.GetMsgByName("USERNAME");     //取得保存用户名称  
  308.           mDescript="通用版本";                           //版本说明  
  309.           MsgObj.MsgTextClear();  
  310. 将其他信息保存到数据库中  
  311.           if (MsgObj.MsgFileSave(“路径”+mFileName))       //保存文档  
  312.           {  
  313.             MsgObj.SetMsgByName("STATUS", "保存成功!");   //设置状态信息  
  314.             MsgObj.MsgError("");                          //清除错误信息  
  315.           }else{  
  316.             MsgObj.MsgError("保存失败!");                 //设置错误信息  
  317.           }  
  318.           MsgObj.MsgFileClear();  
  319.         }  

 

以上是关于WebOffice控件的使用的主要内容,如果未能解决你的问题,请参考以下文章

Selenium处理常见web控件-table

webbrowser控件如何获取网页回传的数据

在线office文档编辑NTKO使用心得

vb的webbrowser控件问题

webassebly加载报错

c#中利用Spire.pdf控件加密解密都不让超过10页,怎么处理,才能加密解密任意大小的文件