WebOffice控件的使用

Posted

tags:

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

作者:娃娃

Java代码  技术分享

  1. 最近拿到一个老项目,用到了weboffice ,无奈网上找找收藏学习  
  2.   
  3. 首先需要导入jar包iweboffice.jar  
  4.   
  5. 后台操作代码如下:  
Java代码  技术分享
  1. package weboffice;  
  2.   
  3. import java.io.IOException;  
  4.   
  5. import javax.servlet.ServletException;  
  6. import javax.servlet.ServletOutputStream;  
  7. import javax.servlet.http.HttpServlet;  
  8. import javax.servlet.http.HttpServletRequest;  
  9. import javax.servlet.http.HttpServletResponse;  
  10.   
  11. public class WebOfficeServeltAction extends HttpServlet {  
  12. private DBstep.iMsgServer2000 MsgObj = new DBstep.iMsgServer2000(); // 创建服务对象  
  13.   
  14. public WebOfficeServeltAction() {  
  15.    super();  
  16. }  
  17.   
  18.   
  19. public void destroy() {  
  20.    super.destroy();   
  21.     
  22. }  
  23.   
  24.   
  25. public void doGet(HttpServletRequest request, HttpServletResponse response)  
  26.     throws ServletException, IOException {  
  27.   
  28.    this.doPost(request, response);  
  29. }  
  30.   
  31. public void doPost(HttpServletRequest request, HttpServletResponse response)  
  32.     throws ServletException, IOException {  
  33.    response.setContentType("text/html");  
  34.    response.setCharacterEncoding("UTF-8");  
  35.    System.out.println("进来了");  
  36.    String mOption = "";  
  37.    String mUserName = "";  
  38.    String mRecordID = "";  
  39.    String mTemplate = "";  
  40.    byte[] mFileBody = null;  
  41.    String mFileName = "";  
  42.    String mFileType = "";  
  43.    String mDescript = "";  
  44.    int mFileSize = 0;  
  45.     
  46.     
  47.    if (request.getMethod().equalsIgnoreCase("POST")) {  
  48.     MsgObj.MsgVariant(ReadPackage(request));  
  49.     if (MsgObj.GetMsgByName("DBSTEP").equalsIgnoreCase("DBSTEP")){// 如果是合法的信息包  
  50.      mOption=MsgObj.GetMsgByName("OPTION") ;   //取得操作类型  
  51.      System.out.println("操作类型==="+mOption);  
  52.      if(mOption.equalsIgnoreCase("SAVEFILE")){  
  53.       mRecordID=MsgObj.GetMsgByName("RECORDID");     //取得文档编号  
  54.            mFileName=MsgObj.GetMsgByName("FILENAME");     //取得文档名称  
  55.            mFileType=MsgObj.GetMsgByName("FILETYPE");     //取得文档类型  
  56.            mFileSize=MsgObj.MsgFileSize();                //取得文档大小  
  57.            mUserName= MsgObj.GetMsgByName("USERNAME");     //取得保存用户名称             
  58.            //此处可以解决乱码问题  
  59.            mFileBody=MsgObj.MsgFileBody();                //取得文档内容  
  60.            mFileBody=MsgObj.ToDocument(mFileBody);//进行分离操作  
  61.       MsgObj.MsgFileBody(mFileBody); //将分离后的文档数据读入组件对象       
  62.                   
  63.            mDescript="通用版本";                           //版本说明  
  64.            MsgObj.MsgTextClear();// 清除文本信息  
  65.            //文档信息内容保存到数据库中或者文件中  
  66.            //以保存到文件为例  
  67.            boolean flag = MsgObj.MsgFileSave("F:/test/"+mFileName);         
  68.            if (flag){//保存文档内容  
  69.                MsgObj.SetMsgByName("STATUS", "保存成功!");   //设置状态信息  
  70.                MsgObj.MsgError("");                          //清除错误信息  
  71.            }else{  
  72.                MsgObj.MsgError("保存失败!");                 //设置错误信息  
  73.              }  
  74.              MsgObj.MsgFileClear();           
  75.      }  
  76.       
  77.      //打开  
  78.      if(mOption.equalsIgnoreCase("LOADFILE")){  
  79.       mRecordID = MsgObj.GetMsgByName("RECORDID"); // 取得文档编号  
  80.       mFileName = MsgObj.GetMsgByName("FILENAME"); // 取得文档名称  
  81.       mFileType = MsgObj.GetMsgByName("FILETYPE"); // 取得文档类型  
  82.       MsgObj.MsgTextClear(); // 清除文本信息  
  83.       //如果对数据库操作,只要把数据库中文档的内容付给MsgObj.MsgFileBody就可以了  
  84.       //通过mRecordID找到数据库中的记录,然后将数据库中的文件流付给mFileBody  
  85.       if (MsgObj.MsgFileLoad("F:/test/"+mFileName+mFileType)){//调入文档  
  86.        //MsgObj.MsgFileBody(mFileBody);//从数据库中读取时用  
  87.        MsgObj.SetMsgByName("STATUS","打开成功!"); // 设置状态信息   
  88.        MsgObj.MsgError(""); // 清除错误信息  
  89.       } else {  
  90.        MsgObj.MsgError("打开失败!"); //打开失败! 设置错误信息  
  91.       }  
  92.      }  
  93.      //修改  
  94.      if (mOption.equalsIgnoreCase("MODIFYFILE")){  
  95.       MsgObj.GetMsgByName("ATTACHID");//获得ID  
  96.       //通过ID取得记录及相应信息  
  97.       MsgObj.MsgTextClear(); // 清除文本信息  
  98.       if (MsgObj.MsgFileSave("F:/test/"+mFileName+mFileType)){// 保存文件此处添路径  
  99.        MsgObj.SetMsgByName("STATUS", "保存成功!"); // 设置状态信息 保存成功  
  100.   
  101.        MsgObj.SetMsgByName("ATTACHID", "");//此处存取记录编号  
  102.        MsgObj.MsgError(""); // 清除错误信息  
  103.       } else {  
  104.        MsgObj.MsgError("保存失败!"); // 设置错误信息 保存失败!  
  105.       }  
  106.       MsgObj.MsgFileClear();  
  107.      }                         
  108.     }else {  
  109.      MsgObj.MsgError("数据包错误!");//客户端发送数据包错误!  
  110.      MsgObj.MsgTextClear();  
  111.      MsgObj.MsgFileClear();  
  112.     }    
  113.    }else {  
  114.     MsgObj.MsgError("请使用POST方法");//必须使用POST方法!  
  115.     MsgObj.MsgTextClear();  
  116.     MsgObj.MsgFileClear();  
  117.    }  
  118.    SendPackage(response);  
  119. }  
  120.   
  121. public void init() throws ServletException {  
  122.    //生成对象实例:  
  123.   
  124.    MsgObj=new DBstep.iMsgServer2000();  
  125.   
  126.   
  127. }  
  128.   
  129.   
  130. //取得客户端发来的数据包  
  131.   
  132. private byte[] ReadPackage(HttpServletRequest request){  
  133.    byte mStream[]=null;  
  134.    int totalRead = 0;  
  135.    int readBytes = 0;  
  136.    int totalBytes = 0;  
  137.    try{  
  138.      totalBytes = request.getContentLength();  
  139.      mStream = new byte[totalBytes];  
  140.      while(totalRead < totalBytes){  
  141.        request.getInputStream();  
  142.        readBytes = request.getInputStream().read(mStream, totalRead, totalBytes - totalRead);  
  143.        totalRead += readBytes;  
  144.        continue;  
  145.      }  
  146.    }  
  147.    catch (Exception e){  
  148.      System.out.println(e.toString());  
  149.    }  
  150.    return (mStream);  
  151. }  
  152.   
  153.   
  154. //发送处理后的数据包  
  155.   
  156. private void SendPackage(HttpServletResponse response){  
  157.    try{  
  158.      ServletOutputStream OutBinarry=response.getOutputStream() ;  
  159.      OutBinarry.write(MsgObj.MsgVariant()) ;  
  160.      OutBinarry.flush();  
  161.      OutBinarry.close();  
  162.    }  
  163.    catch(Exception e){  
  164.      System.out.println(e.toString());  
  165.    }  
  166.   
  167. }  
  168.   
  169. }  

 

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

Selenium处理常见web控件-table

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

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

vb的webbrowser控件问题

webassebly加载报错

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