WebOffice控件的使用(一)

作者:娃娃

Java代码  

  1. 最近拿到一个老项目,用到了weboffice ,无奈网上找找收藏学习
  2. 首先需要导入jar包iweboffice.jar
  3. 后台操作代码如下:

Java代码  

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

WebOffice控件的使用(一)的相关文章

WebOffice控件的使用(二)

作者:哇哇~~~ Java代码   SetMsgByName (String, String)    设置字段值 GetMsgByName(String)        取得字段值 MsgTextClear()                     清除所有字段 MsgError()                   取得错误信息 MsgError(String)          设置错误信息 MsgErrorClear()            清除错误信息 MsgVariant()  

WEB网站类型系统中使用的OFFICE控件

WEB下使用的OFFICE控件介绍,另提供一个原创破解首先来个名词解释,Office网络文档控件,就是在网页中编辑office文档的控件(前提是browser已经安装OFFICE).最近一个项目需要用到这个玩意,经过不泄努力的百度和GOOLE,发现Office网络文档控件资源,目前国产的有以下几款: 一.iWebOffice2006江西金格网络科技有限责任公司http://www.goldgrid.com/DownLoad/index.asp#Item24我的简单意见:需要安装服务器端组件,并进

WEB网站类型系统中使用的OFFICE控件-破解Ntko-Office

2011-12-12 22:49| 发布者: Admin| 查看: 1399| 评论: 0|原作者: 风云OA 摘要: WEB下使用的OFFICE控件介绍,另提供一个原创破解 首先来个名词解释,Office网络文档控件,就是在网页中编辑office文档的控件(前提是browser已经安装OFFICE). 最近一个项目需要用到这个玩意,经过不泄努力的百度 ... WEB下使用的OFFICE控件介绍,另提供一个原创破解首先来个名词解释,Office网络文档控件,就是在网页中编辑office文档的控件

使用图像扫描控件ScanOnWeb实现在线图像扫描

今天上网查资料,看到一篇文章,描述的是一个开发OA软件的公司解决浏览器嵌入式扫描仪编程的文章,文章描述了改OA厂商的工程师如何辛苦的克服了各种技术难题,最终实现了在线图像扫描处理,然后又在无数个不眠的夜晚以后最终实现了双面扫描功能. 那篇文章写的比较老了,是2009年的事情,其实现在要解决类似的问题就没有那么痛苦,在项目中应用ScanOnWeb在线图像扫描组件即可实现扫描仪编程. 为了便于对比,我转载了该篇文章并适当隐去了一些信息. -------------------------------

在DataGridView控件中实现冻结列分界线

我们在使用Office Excel的时候,有很多时候需要冻结行或者列.这时,Excel会在冻结的行列和非冻结的区域之间绘制上一条明显的黑线.如下图: (图1) WinForm下的DataGridView控件也能实现类似的冻结行或者列的功能(参见:http://msdn.microsoft.com/zh-cn/library/28e9w2e1(VS.85).aspx) ,但是呢,DataGridView控件默认不会在冻结列或者行的分界处绘制一个明显的分界线,这样的话,最终用户很难注意到当前有列或者

摆脱Login控件,自己定义登录操作

protected void ImageButton1_Click(object sender, ImageClickEventArgs e) { //在登录过程中,程序自动使用login.aspx进行拦截 //验证用户通过后,自动返回拦截的位置 if (Membership.ValidateUser(this.TextBox1.Text, this.TextBox2.Text)) { this.Session["xh"] = this.TextBox1.Text; FormsAuth

python selenium 处理时间日期控件(十五)

测试过程中经常遇到时间控件,需要我们来选择日期,一般处理时间控件通过层级定位来操作或者通过调用js来实现. 1.首先我们看一下如何通过层级定位来操作时间控件. 通过示例图可以看到,日期控件是无法输入日期,点击后弹出日期列表供我们选择日期,自己找了一个日期控制演示一下,通过两次定位,选择了日期 #-*- coding:utf-8 -*- import time from selenium import webdriver driver = webdriver.Chrome() driver.get

Delphi XE10 dxLayoutControl 控件应用指南

http://www.cnblogs.com/Bonny.Wong/p/7440288.html DevExpress VCL套件是一套非常强大的界面控件,可惜关于Delphi开发方面的说明太少,有些控件使用起来一头雾水,不知从何下手.本节详细介绍在Delphi Xe10 Seattle中如何利用dxLayoutControl 控件来做界面布局. 1.  首先从工具箱面板中将dxLayoutControl放在Form上,设置2个关键属性如下: 属性 属性值 说明 Align alClient 一

Android自己定义控件之轮播图控件

背景 近期要做一个轮播图的效果.网上看了几篇文章.基本上都能找到实现,效果还挺不错,可是在写的时候感觉每次都要单独去又一次在Activity里写一堆代码.于是自己封装了一下.这里仅仅是做了下封装成一个控件,不必每次反复写代码了. 效果图 实现分析 轮播图的功能就是实现左右滑动的广告.图片信息展示,那我们就用ViewPager来实现,由于考虑到用户体验,我们还须要在以下加一个指示器来标示滑动到了第几张轮播图.指示器我们能够用一个线性布局来依据要展示的轮播图设置显示的View,我们要做这种一个控件没