WebOffice开发文档.docx

上传人:b****9 文档编号:25378234 上传时间:2023-06-07 格式:DOCX 页数:54 大小:35.66KB
下载 相关 举报
WebOffice开发文档.docx_第1页
第1页 / 共54页
WebOffice开发文档.docx_第2页
第2页 / 共54页
WebOffice开发文档.docx_第3页
第3页 / 共54页
WebOffice开发文档.docx_第4页
第4页 / 共54页
WebOffice开发文档.docx_第5页
第5页 / 共54页
点击查看更多>>
下载资源
资源描述

WebOffice开发文档.docx

《WebOffice开发文档.docx》由会员分享,可在线阅读,更多相关《WebOffice开发文档.docx(54页珍藏版)》请在冰豆网上搜索。

WebOffice开发文档.docx

WebOffice开发文档

WebOffice文档控件

开发文档

 

标记

名称:

WebOffice开发文档

状态:

发布

部门:

研发部

文档ID:

WebOffice-01-001

 

 

一、工作原理

WebOffice是基于客户端的ocx控件,它的功能是将Office文档(Word、Excel、WPS)嵌入到浏览器中,并调用Office中各种接口,完成文档编辑工作,然后使用控件的Http接口模拟表单提交,发送到数据处理页面(此文档举例为saveDoc.asp页,代码见演示文件),完成文档的存档工作。

1.1开发流程

├装载控件...

├触发初始化方法

--

WebOffice1_NotifyCtrlReady()

//-->

├执行初始化方法,打开新文档或装载已经存在的文档

functionWebOffice1_NotifyCtrlReady(){

document.all.WebOffice1.LoadOriginalFile("…","…");

}

├根据当前步骤,来决定是否进入修订状态,如果是修订状态,最好设置当前的用户名

functionWebOffice1_NotifyCtrlReady(){

document.all.WebOffice1.LoadOriginalFile("…","…");

document.all.WebOffice1.SetCurrUserName("张三");

document.all.WebOffice1.SetTrackRevisions

(1);

}

├填写表单元素,编辑Office文档

├执行Http上传接口保存表单元素和Office文档

//保存文档之前,如果需要接受修订,需要调用

document.all.WebOffice1.SetTrackRevisions(4);

//通过Http接口上传

document.all.WebOffice1.HttpInit();

document.all.WebOffice1.HttpAddPostString("…","…");

document.all.WebOffice1.HttpAddPostCurrFile("…","…");

document.all.WebOffice1.HttpPost("…")

├saveDoc.asp获取表单数据和Office进行数据库操作,并返回操作是否正确。

├根据saveDoc.asp返回值进行相应操作。

1.2WEB页面调用控件:

0px;TOP:

0px"

classid="clsid:

E77E049B-23FC-4DB8-B756-60529A35FAD5"codebase=WebOffice.ocx#Version=3,0,0,0>

主要参数说明:

id控件在网页的别名,可以通过别名调用控件的方法、属性

width控件的宽度,可以使用绝对大小,如width="100px"。

height控件的高度

codebase设置控件自动下载的路径,用户如果没有安装控件,系统会自动访问codebase的路径下载控件;“#Version”后的是控件的版本,如果用户当前的软件版本低于“#Version”后面的版本,系统也会自动下载最新的控件

注意:

如果控件的width和height属性使用%表示,则要明确指明它所在的容器的大小,如把控件放到表格内,则要明确指明表格的width和height的绝对值。

二、接口说明

2.1接口

2.1.1AboutBox

原型:

voidAboutBox();

功能:

显示WebOffice版本信息

返回值:

示例:

document.all.WebOffice1.AboutBox();

2.1.2AcceptAllRevisions

原型:

longAcceptAllRevisions();

功能:

接受当前文档所有修订

返回值:

0:

接受修订成功

非零:

接受修订失败

示例:

document.all.WebOffice1.AcceptAllRevisions();

2.1.3AddMenu

原形:

AddMenu(LPCTSTRcMenuName,LPCTSTRcChildName,longiIndex,LPCTSTRcBindJSFun)

功能:

(保留)

参数:

返回值:

示例:

2.1.4BookMarkOpt

原型:

longBookMarkOpt(BSTRstrBookMarks,longlType);

功能:

获取文档书签列表(保留)

参数:

返回值:

示例:

2.1.5CloseDoc

原型:

longCloseDoc(longblReqSaved);

功能:

关闭当前文档

参数:

blReqSaved:

0:

关闭文档,不保存当前修改。

1:

关闭文档,保存当前修改。

2:

如果文档已经被修改,显示保存文档对话框,否则直接关闭。

其它:

关闭文档,保存当前修改。

返回值:

0:

失败

非零:

成功

示例:

//关闭当前文档,不保存当前修改。

document.all.WebOffice1.CloseDoc(0);

2.1.6ConvertToAip

原型:

shortConvertToAip(shortnAddOriFile,shortnSupport)

功能:

把当前通过LoadOriginalFile打开的原始文件直接转化成AIP文件。

参数:

nAddOriFile:

是否装载原始文件。

0:

不装载。

非0:

装载原始文件。

nSupport:

是否以普通方式(即解析文档的书签)打开。

0:

不解析。

非0:

解析。

返回值:

0:

转化失败

非零:

转化成功

示例:

document.all.WebOffice1.ConvertToAip(1,1);

2.1.7CreateApp

原型:

shortCreateApp(BSTRstrAppName);

功能:

(保留)

参数:

返回值:

示例:

2.1.8DelLocalFile

原型:

longDelLocalFile(BSTRstrFilePathName);

功能:

删除本地文件(6.0.4.0以后的版本,只能删除临时文件,即通过GetTempFilePath获取的路径)

参数:

strFilePathName:

本地文件的绝对路径。

返回值:

0:

删除成功

非零:

删除失败

示例:

document.all.WebOffice1.DelLocalFile("c:

\\111.doc");

2.1.9DownLoadFile

原型:

shortDownLoadFile(LPCTSTRstrHttpFileURL,LPCTSTRstrLocalFilePath,LPCTSTRstrTitle,LPCTSTRstrFileType)

功能:

下载远程服务器文件,当设置OptionFlag|=0x0080会弹出文件下载进度条。

参数:

strHttpFileURL:

服务器文件路径。

strLocalFilePath:

保存的本地文件路径,如为空则弹出文件保存对话框。

strTitle:

文件保存对话框的默认文件名,仅当strLocalFilePath为空有效。

strFileType:

默认文件类型,仅当strLocalFilePath为空有效。

 

返回值:

0:

成功

非零:

失败

示例:

obj.DownLoadFile("","c:

\\111.sel","","");

obj.DownLoadFile("","","标题","doc");

2.1.10ExcProtectSharing

原型:

longExcProtectSharing(BSTRstrPassword,BSTRstrWriteResPassword,shortbReadOnlyRecommended,BSTRstrSharingPassword);

功能:

(保留)

参数:

返回值:

示例:

 

2.1.11ExcUnprotectSharing

原型:

longExcUnprotectSharing(BSTRstrSharingPassword);

功能:

(保留)

参数:

返回值:

示例:

2.1.12FtpConnect

原型:

longFtpConnect(BSTRstrURL,longlPort,BSTRstrUser,BSTRstrPwd);

功能:

FTP相关(保留)

参数:

返回值:

示例:

2.1.13FtpDisConnect

原型:

longFtpDisConnect();

功能:

FTP相关(保留)

参数:

返回值:

示例:

2.1.14FtpGetFile

原型:

longFtpGetFile(BSTRstrRemoteFile,BSTRstrLocalFile);

功能:

FTP相关(保留)

参数:

返回值:

示例:

2.1.15GetDocumentObject

原型:

IDispatch*GetDocumentObject();

功能:

获取文档对象的ActiveDocument对象,此接口非常重要,基本所有的VBA功能都可以通过这个接口来实现。

参数:

返回值:

ActiveDocument对象的Dispatch

示例:

/*以下的JavaScript为采用ActiveDocument的方式直接操作VBA,向DOC文档的书签中加入一个图片。

functionAddPicture(strMarkName,strBmpPath,vType)

在书签位置插入图片,

strMarkName书签的名称

strBmpPath 图片的路径

vType      插入后的图片的样式,5为浮动在文字上面

AddPicture("test1","d:

\\111.bmp",5);

AddPicture("test1","d:

\\111.bmp",128);

*/

functionAddPicture(strMarkName,strBmpPath,vType)

{

//定义一个对象,用来存储ActiveDocument对象

        varobj;

        obj=newObject(document.all.WebOffice1.GetDocumentObject());

        if(obj!

=null){

          varpBookMarks;

//VAB接口获取书签集合

                  pBookMarks=obj.Bookmarks;

                  varpBookM;

//VAB接口获取书签strMarkName

                  pBookM=pBookMarks(strMarkName);

                  varpRange;

//VAB接口获取书签strMarkName的Range对象

                  pRange=pBookM.Range;

                  varpRangeInlines;

//VAB接口获取书签strMarkName的Range对象的InlineShapes对象

                  pRangeInlines=pRange.InlineShapes;

                  varpRangeInline;

//VAB接口通过InlineShapes对象向文档中插入图片

                  pRangeInline=pRangeInlines.AddPicture(strBmpPath); 

//设置图片的样式,5为浮动在文字上面

                  pRangeInline.ConvertToShape().WrapFormat.TYPE=vType;

                  deleteobj; 

   }

}

2.1.16GetFieldValue

原型:

BSTRGetFieldValue(BSTRstrFieldName,BSTRstrSheetName);

功能:

获得书签位置的数值

参数:

strFieldName:

书签的名字

strSheetName:

预留字段(值为空)

返回值:

返回书签的值

示例:

//获得书签的值

varstrFieldValue=document.all.WebOffice1.GetFieldValue("mark_1","")

2.1.17GetTempFilePath

原型:

BSTRGetTempFilePath();

功能:

获得临时文件路径

参数:

返回值:

当前文件的临时路径

示例:

varstrTempPath=document.all.WebOffice1.GetTempFilePath();

2.1.18GetRevCount

原型:

longGetRevCount();

功能:

获取修订节点的个数

参数:

返回值:

获取修订节点的个数

示例:

 

2.1.19GetRevInfo

原型:

BSTRGetRevInfo(longlIndex,longlType);

功能:

获取修订节点的信息(修订人,修订的时间,修订的动作)

参数:

lIndex:

修订的节点编号

lType:

获取的信息编号

返回值:

示例:

//1.获取修订的用户

vUserName=document.all.WebOffice1.GetRevInfo(i,0);

//2.获取修订的时间

vDate=newString(document.all.WebOffice1.GetRevInfo(i,1));

//3.获取修订的动作

varvRet=document.all.WebOffice1.GetRevInfo(i,2);

vRet=="1":

表示"插入"的操作

vRet=="2":

表示"删除"的操作

//4.获取修订的内容

vUserName=document.all.WebOffice1.GetRevInfo(i,3);

//总体的例子代码

varvCount;

vCount=document.all.WebOffice1.GetRevCount();

varvOpt=0;

varvDate;

for(vari=1;i<=vCount;i++){

vOpt=document.all.WebOffice1.GetRevInfo(i,2);

if("1"==vOpt){

vOpt="插入";

}elseif("2"==vOpt){

vOpt="删除";

}else{

vOpt="未知操作";

}

vDate=newString(document.all.WebOffice1.GetRevInfo(i,1));

vDate=parseFloat(vDate);

dateObj=newDate(vDate);

alert(dateObj.getYear()+"年"+dateObj.getMonth()+1+"月"+dateObj.getDate()+"日"+dateObj.getHours()+"时"+dateObj.getMinutes()+"分"+dateObj.getSeconds()+"秒");

alert("用户:

"+document.all.WebOffice1.GetRevInfo(i,0)+"\r\n操作:

"+vOpt+"\r\n内容:

"+document.all.WebOffice1.GetRevInfo(i,3));

}

2.1.20GetFileSize

原型:

longGetFileSize(LPCTSTRstrFilePath);

功能:

获取本地文件的大小

参数:

返回值:

示例:

varvLen=obj.GetFileSize("c:

\\111.doc");

2.1.21GetBookMarkCount

原型:

longGetBookMarkCount();

功能:

获取文档中书签的总数量

参数:

返回值:

示例:

GetFileSize

2.1.22GetBookMarkInfo

原型:

BSTRGetBookMarkInfo(longlIndex,longlType);

功能:

获取各书签的信息(名称和变量)

参数:

返回值:

示例:

varvBKCount;

vBKCount=document.all.WebOffice1.GetBookMarkCount();

variIndex;

varvName;

varvValue;

varvShowInfo;

vShowInfo="";

for(iIndex=1;iIndex<=vBKCount;iIndex++){

vName=document.all.WebOffice1.GetBookMarkInfo(iIndex,0);

vValue=document.all.WebOffice1.GetBookMarkInfo(iIndex,1);

vShowInfo+="BK"+iIndex+":

"+vName+"="+vValue+"
";

vName="";

vValue="";

}

alert(vShowInfo);

2.1.23HideMenuItem

原型:

longHideMenuItem(longlMenuType);

功能:

控制自有工具栏的显示

参数:

lMenuType工具栏开关,采用32位的数字作为开关,当相关位为1的时候,按钮显示,为0是按钮隐藏。

enum{

vNew=0x01,//新建

vOpen=0x02,//打开

vSaveAs=0x04,//保存

vPrint=0x10,//打印

vPrintView=0x20,//打印预览

vReturn=0x1000,//全屏

vFullScrean=0x2000//返回

};

返回值:

示例:

//只显示新建和全屏按钮

Object.HideMenuItem(0x01+0x1000);

2.1.24HideMenuAction

原型:

longHideMenuAction(shortshMenuMode,longlValue);

功能:

设置菜单的隐藏和显示。

支持Office2007的菜单隐藏和显示

参数:

(仅适用于Office2007)

shMenuMode:

设置模式:

具体值及含义如下:

0:

Office2003以下,直接关闭菜单,暂未支持。

可使用SetToolBarButton2接口控制

1:

Office2007以上,需要设置关闭菜单列表

2:

扩展值,暂无含义

3:

扩展值,暂无含义

4:

扩展值,暂无含义

5:

设置关闭菜单列表后,需调用此值激活。

并第二个参数设置为0,具体见示例。

6:

恢复菜单显示及功能使用,第二个参数设置为0

lValue:

设置要隐藏的菜单及禁止复制、粘贴功能

0x1000:

十进制为4096--粘贴无效

0x2000:

十进制为8192—复制无效

0x100000:

十进制为1048576—开始菜单

0x200000:

十进制为2097152—插入菜单

0x400000:

十进制为4194304—页面布局菜单

0x800000:

十进制为8388608—引用菜单

0x1000000:

十进制为16777216—邮件菜单

0x2000000:

十进制为33554432—审阅菜单

0x4000000:

十进制为67108864—视图菜单

0x8000000:

十进制为134217728—开发工具菜单

0x10000000:

十进制为268435456—加载项菜单

返回值:

示例:

//设置粘贴无效

document.all.WebOffice1.HideMenuAction(1,4096);//设置动作

document.all.WebOffice1.HideMenuAction(5,0);//激活设置

//设置复制无效

document.all.WebOffice1.HideMenuAction(1,4096);

document.all.WebOffice1.HideMenuAction(5,0);

//设置开始菜单隐藏

document.all.WebOffice1.HideMenuAction(1,1048576);

document.all.WebOffice1.HideMenuAction(5,0);

//设置多菜单隐藏(比如隐藏开始、插入、页面布局菜单)

document.all.WebOffice1.HideMenuAction(1,1048576+2097152+4194304);

document.all.WebOffice1.HideMenuAction(5,0);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1