WebOffice-开发文档

更新时间:2024-04-23 20:23:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

标记

名称: 状态: 部门: 文档ID:

WebOffice 文档控件

开发文档

WebOffice开发文档 发布 研发部

WebOffice-01-001

目 录

一、工作原理.................................................................................................................. 5

1.1 开发流程 .................................................................................................... 5 1.2 WEB页面调用控件: .................................................................................... 6 二、接口说明.................................................................................................................. 7

2.1 接口 ........................................................................................................... 7

2.1.1 AboutBox.............................................................................................. 7 2.1.2 AcceptAllRevisions ............................................................................ 7 2.1.3 AddMenu ............................................................................................... 7 2.1.4 BookMarkOpt ........................................................................................ 7 2.1.5 CloseDoc.............................................................................................. 8 2.1.6 ConvertToAip....................................................................................... 8 2.1.7 CreateApp ............................................................................................ 8 2.1.8 DelLocalFile....................................................................................... 9 2.1.9 DownLoadFile....................................................................................... 9 2.1.10 ExcProtectSharing ....................................................................... 9 2.1.11 ExcUnprotectSharing ................................................................. 10 2.1.12 FtpConnect ................................................................................. 10 2.1.13 FtpDisConnect ............................................................................ 10 2.1.14 FtpGetFile ................................................................................. 10 2.1.15 GetDocumentObject ......................................................................11 2.1.16 GetFieldValue ............................................................................ 12 2.1.17 GetTempFilePath ........................................................................ 12 2.1.18 GetRevCount ............................................................................... 12 2.1.19 GetRevInfo ................................................................................. 13 2.1.20 GetFileSize ............................................................................... 14 2.1.21 GetBookMarkCount....................................................................... 14 2.1.22 GetBookMarkInfo ........................................................................ 14 2.1.23 HideMenuItem.............................................................................. 15 2.1.24 HideMenuAction .......................................................................... 15 2.1.25 HttpInit..................................................................................... 16 2.1.26 HttpAddPostFile ........................................................................ 16 2.1.27 HttpAddPostBuffer ..................................................................... 17 2.1.28 HttpAddPostValue....................................................................... 17 2.1.29 HttpAddPostString ..................................................................... 17 2.1.30 HttpAddPostCurrFile ................................................................. 17 2.1.31 HttpAddPostCurrFile2................................................................ 18 2.1.32 HttpPost..................................................................................... 18 2.1.33 InsertFile ................................................................................. 18 2.1.34 IsOpened..................................................................................... 19

2.1.35 IsSaved ...................................................................................... 20 2.1.36 InsertFile ................................................................................. 20 2.1.37 LoadOriginalFile....................................................................... 21 2.1.38 OpenFileDlg ............................................................................... 21 2.1.39 ProtectDoc ................................................................................. 21 2.1.40 PrintDoc..................................................................................... 22 2.1.41 PutSaved..................................................................................... 22 2.1.42 ReplaceText ............................................................................... 23 2.1.43 Save............................................................................................ 23 2.1.44 SaveTo ........................................................................................ 23 2.1.45 SaveAs ........................................................................................ 23 2.1.46 SaveAsPDF ................................................................................... 24 2.1.47 SetFieldValue ............................................................................ 24 2.1.48 SetPageAs ................................................................................... 25 2.1.49 SetTrackRevisions ..................................................................... 26 2.1.50 ShowRevisions ............................................................................ 26 2.1.51 SetCurrUserName ........................................................................ 26 2.1.52 SetToolBarButton2 ..................................................................... 26 2.1.53 SetCurrTime ............................................................................... 28 2.1.54 SetKeyCtrl ................................................................................. 28 2.1.55 SetSecurity ............................................................................... 28 2.1.56 ShowDialog ................................................................................. 29 2.1.57 SetValue..................................................................................... 29 2.1.58 SetDocVariable .......................................................................... 30 2.1.59 UnProtectDoc(BSTR strPwd) ....................................................... 30 2.1.60 ZipFile ...................................................................................... 31 2.1.61 GetBMPos..................................................................................... 31 2.1.62 LocalProtect.............................................................................. 31 2.1.63 UnActiveExcel() ........................................................................ 32 2.1.64 HideMenuArea.............................................................................. 32 2.1.65 SetCustomColour ........................................................................ 32 2.1.66 SetCustomToolBtn....................................................................... 33 2.1.67 GetFileBase64 ............................................................................ 34 2.1.68 SaveBinaryFileFromBase64......................................................... 34 2.1.69 SetWindowText ............................................................................ 34 2.2 属性 ......................................................................................................... 35

2.2.1 DocType ............................................................................................. 35 2.2.2 Version ............................................................................................. 35 2.2.3 AppVersion ........................................................................................ 35 2.2.4 lEventRet .......................................................................................... 35 2.2.5 IsModify............................................................................................ 36 2.2.6 ShowToolBar ...................................................................................... 36 2.2.7 OptionFlag ........................................................................................ 36 2.2.8 Is2007 ............................................................................................... 37

2.2.9 lContinue .......................................................................................... 37 2.3 事件 ......................................................................................................... 37

2.3.1 NotifyWordEvent ............................................................................... 37 2.3.2 NotifyCtrlReady ............................................................................... 38 2.3.3 NotifyToolBarClick .......................................................................... 38

三、ASP例子说明 ......................................................................................................... 40

3.1 Access数据库结构 .................................................................................. 40 3.2 演示程序主要页面说明 ............................................................................ 40 3.3 开发必读 .................................................................................................. 40 四、FAQ ......................................................................................................................... 41

4.1 如何把文件直接上传到服务器 ....................................................................... 41 五、附录 ....................................................................................................................... 42

5.1 WebOffice文件Http上传原理 ...................................................................... 42 5.1 如何自定义工具栏.............................................................错误!未定义书签。

一、工作原理

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

1.1 开发流程

├ 装载控件 ... ├ 触发初始化方法

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

function WebOffice1_NotifyCtrlReady() {

document.all.WebOffice1.LoadOriginalFile(\, \); }

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

function WebOffice1_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.2 WEB页面调用控件:

主要参数说明:

id 控件在网页的别名,可以通过别名调用控件的方法、属性 width 控件的宽度,可以使用绝对大小,如width=\。 height 控件的高度

codebase 设置控件自动下载的路径,用户如果没有安装控件,系统会自动访问

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

注意: 如果控件的width 和height属性使用%表示,则要明确指明它所在的容

器的大小,如把控件放到表格内,则要明确指明表格的width和height的绝对值。

二、接口说明

2.1 接口

2.1.1

AboutBox 原 型: void AboutBox();

功 能:显示WebOffice版本信息 返回值: 示 例:

document.all.WebOffice1. AboutBox();

2.1.2 AcceptAllRevisions 原 型: long AcceptAllRevisions(); 功 能:接受当前文档所有修订 返回值:

0:接受修订成功

非零:接受修订失败 示 例:

document.all.WebOffice1.AcceptAllRevisions();

2.1.3 AddMenu 原 形:AddMenu(LPCTSTR cMenuName, LPCTSTR cChildName, long iIndex, LPCTSTR cBindJSFun)

功 能:(保留) 参 数: 返回值:

示 例:

2.1.4 BookMarkOpt 原 型: long BookMarkOpt(BSTR strBookMarks,long lType);

功 能:获取文档书签列表(保留) 参 数: 返回值: 示 例:

2.1.5 CloseDoc

原 型: long CloseDoc(long blReqSaved); 功 能:关闭当前文档 参 数:

blReqSaved:

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

2:如果文档已经被修改,显示保存文档对话框,否则直接关闭。 其它:关闭文档,保存当前修改。 返回值:

0: 失败 非零: 成功 示 例:

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

document.all.WebOffice1.CloseDoc (0);

2.1.6 ConvertToAip 原 型: short ConvertToAip(short nAddOriFile,short nSupport)

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

nAddOriFile:是否装载原始文件。

0:不装载。

非0:装载原始文件。

nSupport:

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

返回值:

0:转化失败

非零:转化成功

示 例:document.all.WebOffice1.ConvertToAip (1,1);

2.1.7 CreateApp 原 型: short CreateApp(BSTR strAppName); 功 能:(保留) 参 数:

返回值: 示 例:

2.1.8 DelLocalFile 原 型: long DelLocalFile(BSTR strFilePathName);

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

参 数:

strFilePathName:本地文件的绝对路径。 返回值:

0: 删除成功 非零: 删除失败 示 例:

document.all.WebOffice1.DelLocalFile(\

2.1.9 DownLoadFile 原 型: short DownLoadFile(LPCTSTR strHttpFileURL, LPCTSTR strLocalFilePath, LPCTSTR strTitle, LPCTSTR strFileType)

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

参 数:

strHttpFileURL:服务器文件路径。

strLocalFilePath:保存的本地文件路径,如为空则弹出文件保存对话框。 strTitle:文件保存对话框的默认文件名,仅当strLocalFilePath为空有效。

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

返回值:

0: 成功 非零: 失败 示 例:

obj.DownLoadFile(\obj.DownLoadFile(\标题\

2.1.10 ExcProtectSharing 原 型: long ExcProtectSharing(BSTR strPassword,BSTR strWriteResPassword, short bReadOnlyRecommended,BSTR strSharingPassword);

功 能:(保留) 参 数: 返回值: 示 例:

2.1.11 ExcUnprotectSharing 原 型: long ExcUnprotectSharing(BSTR strSharingPassword); 功 能:(保留) 参 数: 返回值: 示 例:

2.1.12 FtpConnect 原 型: long FtpConnect(BSTR strURL, long lPort, BSTR strUser, BSTR strPwd);

功 能:FTP相关(保留) 参 数: 返回值: 示 例:

2.1.13 FtpDisConnect 原 型: long FtpDisConnect(); 功 能:FTP相关(保留) 参 数: 返回值: 示 例:

2.1.14 FtpGetFile 原 型: long FtpGetFile(BSTR strRemoteFile, BSTR strLocalFile); 功 能:FTP相关(保留) 参 数: 返回值:

示 例:

2.1.15 GetDocumentObject 原 型: IDispatch* GetDocumentObject(); 功 能:

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

返回值: ActiveDocument对象的Dispatch 示 例:

/* 以下的JavaScript为采用ActiveDocument的方式直接操作VBA,向DOC文档的书签

中加入一个图片。

function AddPicture(strMarkName,strBmpPath,vType) 在书签位置插入图片, strMarkName 书签的名称 strBmpPath 图片的路径

vType 插入后的图片的样式,5为浮动在文字上面 AddPicture(\ AddPicture(\ */

function AddPicture(strMarkName,strBmpPath,vType) {

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

obj = new Object(document.all.WebOffice1.GetDocumentObject()); if(obj !=null){

var pBookMarks;

// VAB接口获取书签集合

pBookMarks = obj.Bookmarks; var pBookM;

// VAB接口获取书签strMarkName

pBookM = pBookMarks(strMarkName); var pRange;

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

pRange = pBookM.Range; var pRangeInlines;

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

pRangeInlines = pRange.InlineShapes; var pRangeInline;

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

pRangeInline = pRangeInlines.AddPicture(strBmpPath);

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

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

} }

2.1.16 GetFieldValue 原 型: BSTR GetFieldValue(BSTR strFieldName, BSTR strSheetName); 功 能:获得书签位置的数值 参 数:

strFieldName:书签的名字

strSheetName:预留字段(值为空)

返回值: 返回书签的值 示 例:

//获得书签的值

var strFieldValue=document.all.WebOffice1.GetFieldValue(\

2.1.17 GetTempFilePath 原 型: BSTR GetTempFilePath(); 功 能:获得临时文件路径 参 数: 返回值: 当前文件的临时路径 示 例:

var strTempPath=document.all.WebOffice1.GetTempFilePath ();

2.1.18 GetRevCount 原 型: long GetRevCount(); 功 能:获取修订节点的个数 参 数:

返回值: 获取修订节点的个数 示 例:

2.1.19 GetRevInfo 原 型: BSTR GetRevInfo(long lIndex, long lType);

功 能:获取修订节点的信息(修订人,修订的时间,修订的动作) 参 数:

lIndex: 修订的节点编号 lType: 获取的信息编号 返回值: 示 例:

//1.获取修订的用户

vUserName = document.all.WebOffice1.GetRevInfo(i,0); //2.获取修订的时间

vDate = new String(document.all.WebOffice1.GetRevInfo(i,1)); //3.获取修订的动作

var vRet = document.all.WebOffice1.GetRevInfo(i,2); vRet == \表示\插入\的操作 vRet == \表示\删除\的操作 //4.获取修订的内容

vUserName = document.all.WebOffice1.GetRevInfo(i,3); //总体的例子代码 var vCount;

vCount = document.all.WebOffice1.GetRevCount(); var vOpt = 0; var vDate;

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

vOpt = document.all.WebOffice1.GetRevInfo(i,2); if(\ vOpt = \插入\

}else if(\ vOpt = \删除\ }else{

vOpt = \未知操作\ }

vDate = new String(document.all.WebOffice1.GetRevInfo(i,1)); vDate = parseFloat(vDate); dateObj = new Date(vDate);

alert(dateObj.getYear() + \年\月\dateObj.getDate() +\日\+ dateObj.getHours() +\时\+ dateObj.getMinutes() +\分\秒\

alert(\用户:\+ \操作:\+ vOpt + \内容:\

}

2.1.20 GetFileSize 原 型: long GetFileSize (LPCTSTR strFilePath); 功 能:获取本地文件的大小 参 数: 返回值: 示 例:

var vLen = obj.GetFileSize(\

2.1.21 GetBookMarkCount 原 型: long GetBookMarkCount(); 功 能:获取文档中书签的总数量 参 数: 返回值: 示 例: GetFileSize

2.1.22 GetBookMarkInfo 原 型: BSTR GetBookMarkInfo(long lIndex, long lType); 功 能:获取各书签的信息(名称和变量) 参 数: 返回值: 示 例:

var vBKCount;

vBKCount = document.all.WebOffice1.GetBookMarkCount(); var iIndex; var vName; var vValue; var vShowInfo; vShowInfo = \

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

vName = document.all.WebOffice1.GetBookMarkInfo(iIndex,0 ); vValue = document.all.WebOffice1.GetBookMarkInfo(iIndex,1 ); vShowInfo += \ vName = \ vValue = \ }

alert(vShowInfo);

2.1.23 HideMenuItem 原 型: long HideMenuItem(long lMenuType); 功 能:控制自有工具栏的显示 参 数:

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.24 HideMenuAction 原 型: long HideMenuAction(short shMenuMode, long lValue); 功 能:设置菜单的隐藏和显示。支持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); //恢复至设置之前状态(即正常状态)

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

2.1.25 HttpInit 原 型: long HttpInit(); 功 能:初始化上传接口 参 数: 返回值: 示 例:

//上传前必须执行此方法

document.all.weboffice1.HttpInit();

2.1.26 HttpAddPostFile 原 型: long HttpAddPostFile(BSTR strName, BSTR strFile); 功 能:Http上传相关(保留) 参 数: 返回值: 示 例:

//上传本地文件c:\\\\111.doc

document.all.weboffice1.HttpAddPostFile(\ \

2.1.27 HttpAddPostBuffer 原 型: long HttpAddPostBuffer(BSTR strName, BSTR strRelateFile, BSTR pbBuffer, long lLen);

功 能:Http上传相关(保留) 参 数: 返回值: 示 例:

2.1.28 HttpAddPostValue 原 型: long HttpAddPostValue(BSTR strName, long lValue); 功 能:Http上传相关(保留) 参 数: 返回值: 示 例:

2.1.29 HttpAddPostString 原 型: long HttpAddPostString(BSTR strName, BSTR strValue); 功 能:添加要上传的表单域 参 数:

strName:表单域的名称 strValue:表单域的值 返回值: 示 例:

//添加表单域,可多次执行此方法

document.all.WebOffice1.HttpAddPostString(\myform.DocTitle.value);

2.1.30 HttpAddPostCurrFile 原 型: long HttpAddPostCurrFile(String field, String newFileName); 功 能:添加要上传的Word或者Excel文件 参 数:

Field:要上传文件的id

newFielName:上传后的新文件名。该参数可以为空,系统将自动为文件命名 返回值: 示 例:

document.all.WebOffice1.HttpAddPostCurrFile(\

2.1.31 HttpAddPostCurrFile2 原 型: long HttpAddPostCurrFile2(BSTR strName) 功 能:(保留) 参 数: 返回值: 示 例:

2.1.32 HttpPost 原 型: BSTR HttpPost(BSTR strHttpURL);

功 能:将当前表单和文件数据提交到指定URL路径 参 数:

strHttpURL: 处理表单和文件数据的文件URL路径 返回值: Succeed:上传成功 failed: 上传失败 示 例: //相对路径

var returnValue=document.all.WebOffice1.HttpPost(\//绝对路径 var

returnValue=document.all.WebOffice1.HttpPost(\)

2.1.33 InsertFile 原 形:short InsertFile(LPCTSTR strFilePathName, short nCurPos) 功 能:插入合并文件,和插入图片。 参 数:strFilePathName:

文件或者图片的路径,可以是Http.或者Ftp路径 nCurPos:

位置和图片控制符。nCurPos 或者nCurPos -8 0: 当前位置

1: 文件开头 2: 文件末尾

如果第四位为1:表示插入的是图片

返回值:

0:正确 其他:错误 示 例: //文件头部

document.all.WebOffice1.InSertFile(\//文件尾部

document.all.WebOffice1.InSertFile(\//当前光标位置

document.all.WebOffice1.InSertFile(\//文件头部

document.all.WebOffice1.InSertFile(\//文件尾部

document.all.WebOffice1.InSertFile(\//当前光标位置

document.all.WebOffice1.InSertFile(\

2.1.34 IsOpened 原 型: long IsOpened(); 功 能:判断当前是否打开文件 参 数: 返回值:

0:表示当前未打开文档 非0:表示已经打开文档 FILE_TYPE_WORD = 11, FILE_TYPE_WORD = 11, FILE_TYPE_EXCEL = 12, FILE_TYPE_PPT = 13, FILE_TYPE_RTF = 14, FILE_TYPE_WPS = 21, FILE_TYPE_PDF = 31,

FILE_TYPE_UNK = 127

示 例:

var isOpened=document.all.WebOffice1.IsOpened();

2.1.35 IsSaved 原 型: long IsSaved(); 功 能:判断文件是否被修改 参 数: 返回值:

0:文件已被修改 非零:文件未被修改

示 例:

var isSaved=document.all.WebOffice1.IsSaved();

2.1.36 InsertFile 原 型: long InsertFile(BSTR strFilePathName, short nCurPos); 功 能:插入、合并文件或插入图片 参 数:

strFilePathName:文件或者图片的路径,可以是Http.或者Ftp路径 nCurPos:位置和图片控制符。nCurPos 或者nCurPos -8 0: 当前位置 1: 文件开头

2: 文件末尾

如果第四位为1:表示插入的是图片 返回值:

0:插入成功 非0:插入失败

示 例: //文件头部

document.all.WebOffice1.InSertFile(\//文件尾部

document.all.WebOffice1.InSertFile(\//当前光标位置

document.all.WebOffice1.InSertFile(\//文件头部

document.all.WebOffice1.InSertFile(\//文件尾部

document.all.WebOffice1.InSertFile(\//当前光标位置

document.all.WebOffice1.InSertFile(\

2.1.37 LoadOriginalFile 原 型: long LoadOriginalFile(BSTR pcFileNameOrUrl, BSTR pcType); 功 能:新建、装载Office文档 参 数:

pcFileNameOrUrl:

要装载文件的本地路径或者URL,值为空表示新建文档,如果是在Http的Web环境下,可以传相对路径.

pcType:

doc:打开、新建Word文件 xls:打开、新建Excel文件 ppt:打开、新建PPT 文件 wps:打开、新建WPS 文件

返回值: 0:失败 非0:成功

示 例:

// 通过URL打开一个服务器文件,getdoc.asp代码见演示文件

document.all.WebOffice1.LoadOriginalFile(\id=8\

// 通过URL打开一个服务器文件,相对路径

document.all.WebOffice1.LoadOriginalFile(\document.all.WebOffice1.LoadOriginalFile(\// 新建Excel

document.all.WebOffice1.LoadOriginalFile(\// 通过Word打开本地文件

document.all.WebOffice1.LoadOriginalFile(\

2.1.38 OpenFileDlg 原 型: short OpenFileDlg();

功 能:打开本地文件显示在WebOffice中 参 数:pcFileNameOrUrl:保存的文件路径 返回值: 示 例: //打开对话框

document.all.WebOffice1.OpenFileDlg();

2.1.39 ProtectDoc 原 型: long ProtectDoc(long lProOrUn, long lType, BSTR strPWD); 功 能:文档保护

参 数:

lProOrUn:

└ 1:为保护文档 └ 0:为解锁文档 lType :

└ 0 :文档保护,只允许修订 └ 1 :文档保护,只允许批注

└ 2 :文档完全保护,不允许任何操作 strPWD:文档保护、解锁时所需设置的密码

返回值: 示 例:

// 保护文档,只允许修订

document.all.WebOffice1.ProtectDoc(1, 0, \// 解锁文档

document.all.WebOffice1.ProtectDoc(0, 0, \

2.1.40 PrintDoc 原 型: long PrintDoc(long blShowDlg); 功 能:打印当前文档 参 数:blShowDlg:

0:不显示打印对话框,直接打印

非零:显示打印对话框 返回值:

0:打印失败

非零:打印成功 示 例:

//显示打印对话框

document.all.WebOffice1.PrintDoc(1);

2.1.41 PutSaved 原 型: long PutSaved(boolean bSaved); 功 能:设置当前文档的修改状态 参 数:

0: 处于修改状态 1: 处于保存状态 返回值: 示 例:

//设置当前文档处于修改状态

document.all.WebOffice1.PutSaved(0);

2.1.42 ReplaceText 原 型: short ReplaceText(LPCTSTR strSearchText, LPCTSTR strReplaceText, long lGradation)

功 能:替换文字 参 数:

strSearchText: 待替换的文字

strReplaceText:替换后的文字

lGradation:替换方向。1:向下替换;0:向上替换; 返回值: 示 例:

//把“1”替换为”2”

document.all.WebOffice1.ReplaceText(\

2.1.43 Save 原 型: long Save(); 功 能:

将文件保存原来位置,第一次保存时弹出对话框

参 数: 返回值:

0:保存失败

非零:保存成功 示 例:

document.all.WebOffice1.Save();

2.1.44 SaveTo 原 型: long SaveTo(BSTR pcFileNameOrUrl); 功 能:将文件另存为至其它位置 参 数:

pcFileNameOrUrl:保存的文件路径

返回值:

0:保存失败

非零:保存成功 示 例:

//将文件另存为

document.all.WebOffice1.SaveTo(“c:\\\\webOffice.doc”);

2.1.45 SaveAs 原 型: long SaveAs(BSTR strFileName, long dwFileFormat); 功 能:保存文件到本地

参 数:

strFileName: 要保存的文件路径和文件名 dwFileFormat:保存的文件类型 └ 0 Word类型 └ 2 Txt文件 └ 6 Rtf文件

└ -4143 Excel类型

返回值: 示 例:

document.all.WebOffice1.SaveAs(\ 文件

document.all.WebOffice1.SaveAs(\ 文件

document.all.WebOffice1.SaveAs(\ 文件

document.all.WebOffice1.SaveAs(\文件

// 另存为Word// 另存为Txt// 另存为Rtf// 另存为Excel

2.1.46 SaveAsPDF 原 型: long SaveAsPDF(LPCTSTR strOriFilePath, LPCTSTR strSaveFilePath, long lType)

功 能:保存文件为PDF格式,本地不需要安装Adobe软件。需要下载PDF支持模块。

参 数:

strOriFilePath: 本地文件路径,如果为空,则表示为当前打开的文件 strSaveFilePath:保存的PDF文件格式,如果需要把此文件上传到服务器,请参照 HttpAddPostFile接口 lType:保留参数,传0即可。

返回值:

0:成功 其他:失败

示 例:

document.all.WebOffice1.SaveAsPDF(\ document.all.WebOffice1.SaveAsPDF(\

2.1.47 SetFieldValue 原 型: long SetFieldValue(BSTR strFieldName, BSTR strValue, BSTR strSheetName);

功 能:添加书签,套红头模板

参 数:strFieldName:书签的名字,对于Excel文件,此数据位单元格

strValue:书签的值,该处可以是个用于返回数据的URL,用于套红头模板。对于Excel文件,如果插入的是图片,此数值为::JPG::+图片的路径

strSheetName:命令的类型,对于Excel文件此数值为Sheet的名称 └ ::ADDMARK:: 添加书签 └ ::DELMARK:: 删除书签 └ ::JPG:: 添加图片,可以利用这个来实现图片电子印章 └ ::FILE:: 调用本地或者URL的文件设置书签值(套红头) 返回值: 示 例:

// 添加书签mark_1,并为它赋值

document.all.WebOffice1.SetFieldValue(\北京\// 为已存在的书签mark_1赋值

document.all.WebOffice1.SetFieldValue(\电子签章\// 套本地红头

document.all.WebOffice1.SetFieldValue(\\

// 套服务端红头1,getDoc.asp页用于返回要装载Word的二进制值,代码见演示文件

document.all.WebOffice1.SetFieldValue(\\

// 套服务端红头2

document.all.WebOffice1.SetFieldValue(\oc\

//添加图片电子印章

document.all.WebOffice1.SetFieldValue(\mp\

//在Excel中添加图片

document.all.WebOffice1.SetFieldValue(\ntl/zh-CN/images/logo_cn.gif\

2.1.48 SetPageAs 原 型: long SetPageAs(LPCTSTR strLocalFile, long lPageNum, long lType) 功 能:把某一页的文档保存为doc,html,text,bmp,jpg 参 数:

strLocalFile:待保存的文件路径 lPageNum:第几页

lType:文件类型 0:doc (其他暂没支持,下个版本扩展) 返回值: 示 例:

//把第一页保存为独立的doc文件

document.all.WebOffice1. SetPageAs(\

2.1.49 SetTrackRevisions 原 型: long SetTrackRevisions(long lValue); 功 能:修订文档 参 数:

lValue:文档修订状态

└ 1: 开始修订文档 └ 0: 进入非留痕状态 └ 4:接受当前修订 返回值: 示 例: // 开始修订

document.all.WebOffice1.SetTrackRevisions(1); // 接受修订

document.all.WebOffice1.SetTrackRevisions(4);

2.1.50 ShowRevisions 原 型: long ShowRevisions(long nNewValue); 功 能:显示、隐藏修订 参 数:

nNewValue:要保存的文件路径和文件名 └ 1:显示修订 └ 0:隐藏修订 返回值: 示例:

document.all.WebOffice1.ShowRevisions(0); // 隐藏修订

2.1.51 SetCurrUserName 原 型: long SetCurrUserName(BSTR strCurrUserName);

功 能:设置当前编辑Word、Excel的用户名,主要用于修订文档,标识不同人进行的不同操作

参 数:strCurrUserName:当前编辑人的用户名 返回值:

示 例:document.all.WebOffice1.SetCurrUserName(\张三\

2.1.52 SetToolBarButton2 原 型: short SetToolBarButton2(VARIANT lIndex, VARIANT lID, VARIANT lControl);

功 能:

设置所有菜单项或者菜单项按钮的隐藏和现实

参 数:

lIndex:要显示隐藏的元素名称。根据Word/Excel 的不同版本,可能有部分不同

└ Standard:常用工具条 └ Formatting:格式化工具条 └ Menu Bar:菜单栏

当lIndex为0的时候,lID代表的是按钮的ID数值,关于各按钮的ID值,请参照附件。

lID:要操作的菜单元素的位置

lControl:按钮状态控制,按位控制,如该值为1时,它的二进制为0001,

表示该菜单元素是显示但不可用

第一位为:是否显示。0:隐藏;1:显示 第二位为:是否可用。0:不可用;1:可用。 第三位为:工具栏和菜单栏是否恢复到默认状态。0:不恢复;1:恢复。

第四位为:是否隐藏整个菜单栏或工具栏,1为隐藏,0为显示

返回值: 示 例:

// 常用工具栏上的新建按钮 显示但不可用

document.all. WebOffice1.SetToolBarButton2(\// 常用工具栏上的打开按钮 隐藏。

Docume.nt.all. WebOffice1.SetToolBarButton2(\// 恢复常用工具栏为初始状态

document.all. WebOffice1.SetToolBarButton2(\// 格式工具栏上的格式按钮 显示但不可用

document.all. WebOffice1.SetToolBarButton2(\// 恢复格式工具栏为初始状态

document.all. WebOffice1.SetToolBarButton2(\// 菜单栏文件选项,显示但不可用。

document.all.WebOffice1.SetToolBarButton2(\// 菜单栏文件选项,显示但不可用。

document.all.WebOffice1.SetToolBarButton2(\

// 隐藏整个菜单栏(如果需要隐藏之后再显示,请设置第三个参数为11) document.all.WebOffice1.SetToolBarButton2(\

// 隐藏整个格式工具栏(如果需要隐藏之后再显示,请设置第三个参数为11) document.all.WebOffice1.SetToolBarButton2(\

// 隐藏整个常用工具栏(如果需要隐藏之后再显示,请设置第三个参数为11) document.all.WebOffice1.SetToolBarButton2(\

2.1.53 SetCurrTime 原 型: short SetCurrTime(BSTR dateAndTime);

功 能:设置客户端的修订时间,防止客户端和服务端的时间误差 参 数:

dateAndTime:参数的形式必须为 yyyy-mm-dd hh-mm-ss的形式

返回值: 示 例:

document.all.WebOffice1.SetCurrTime(\

2.1.54 SetKeyCtrl

原 型: long SetKeyCtrl(long lCtrl, long lChar, long lType); 功 能:屏蔽、运行Office的快捷键 参 数:

lCtrl:要屏蔽、运行的快捷键的值。

Ctrl=512 Shift=256 Alt=1024

例:Ctrl + S = 512 + 83 (大写S的ASCII码值) = 595 例:Ctrl + O = 512 + 79 = 591

例:Ctrl + Shift + E = 512 + 256 + 69 = 837

注意:字母使用大写的ASCII码值 lChar:控制类型

└ -1:屏蔽快捷键 └ 1:执行快捷键命令 └ 0:恢复快捷键

└ lTyp:扩展接口,目前暂设为0

返回值: 示 例:

//屏蔽Ctrl + S

document.all.WebOffice1.SetKeyCtrl(595,-1,0) //屏蔽Ctrl + O

document.all.WebOffice1.SetKeyCtrl(591,-1,0)

2.1.55 SetSecurity 原 型: long SetSecurity(long lFlag) 功 能:

设置文档安全选项 参 数:

lFlag:按位标记的控制开关。

0x01表示不允许打印(当第一位为1时有效) 0x02表示不允许保存(当第二位为1时有效)

0x04表示不允许复制(当第三位为1时有效) 0x08表示不允许拖动(当第四位为1时有效) 0x8000表示清除开关(当最高位为1时有效)

返回值: 示 例: //禁止打印

Object.SetSecurity(0x01); //恢复允许打印

Object.SetSecurity(0x01 + 0x8000); //禁止保存

Object.SetSecurity(0x02); //恢复允许保存

Object.SetSecurity(0x02 + 0x8000); //禁止复制

Object.SetSecurity(0x04); //恢复允许复制

Object.SetSecurity(0x04 + 0x8000); //禁止打印、保存、复制

Object.SetSecurity(0x01+0x02+0x04); //恢复允许打印、保存、复制

Object.SetSecurity(0x01+0x02+0x04+0x8000);

2.1.56 ShowDialog 原 型: long ShowDialog(long dwIndex); 功 能:

显示对话框 参 数:

dwIndex:对话框的ID数值,详细的数值列表请参照附件。 返回值: 示 例:

2.1.57 SetValue 原 形:short SetValue(LPCTSTR strValue, LPCTSTR strName)

功 能:设置Word、Excel文档基本信息,目前仅支持 只读和可写密码 参 数:strValue:设置的基本信息的数值

strName:基本信息的标识,如只读密码的标识为\可改密码的标识为\

返回值:

0:正确设置

-1:不支持此命令,请确定您的第二个参数为正确。 示 例:

//设置当前文档的打开密码为”password”

document.all.WebOffice1.SetValue(\

//设置当前文档的可写密码为”password”

document.all.WebOffice1.SetValue(\

2.1.58 SetDocVariable 原 形:short SetDocVariable(LPCTSTR strVarName, LPCTSTR strValue, long lOpt)

功 能:设置Word中的变量的值,更可以更新与此变量相关联的域。 参 数:strVarName 变量名称 strValue

变量设置的数值 lOpt

一个按位操作的数字位, 第一位为1: 表示update域关联的

第二位为1: 表示如果没有这个变量则添加

返回值:

1:正确设置 0:错误 示 例:

//设置变量 DocName的值为\文档名称\,如不存在DocName的变量则返回 document.all.WebOffice1.SetDocVariable(\文档名称\

//设置变量 DocName的值为\文档名称\,如不存在DocName的变量则添加 document.all.WebOffice1.SetDocVariable(\文档名称\

//设置变量 DocName的值为\文档名称\,并更新DocName所关联的域 document.all.WebOffice1.SetDocVariable(\文档名称\

2.1.59 UnProtectDoc(BSTR strPwd) 原 型: long UnProtectDoc(BSTR strPwd); 功 能:解除当前文档保护

参 数:strPwd 文档保护时所设置的密码 返回值:

0:解锁成功

非零:解锁失败

2.2.5 IsModify 原 型: BOOL IsModify;

说 明:判断文档是否被修改,需要在LoadOrigarFile之前设置 OptionFlag |= 0x0400 才有效。

2.2.6 ShowToolBar 原 型: BOOL ShowToolBar; 说 明:是否显示工具栏。 数 值: 1:显示工具栏 ;

0:隐藏工具栏

2.2.7 OptionFlag 原 型: long OptionFlag;

说 明:系统标志位,可读写。此属性比较重要,可以作为各种控制开关。 数 值:

OPTIONFLAG_WORD_07SAVETO03 0x0001(Office2007保存为兼容格式) OPTIONFLAG_EXCEL_07SAVETO03 0x0002(Office2007保存为兼容格式) OPTIONFLAG_HTTPSAVEENC 0x0004(HttpPost时候文件加密压缩) OPTIONFLAG_SETFILEDVALUE 0x0008(书签操作后删除盖书签) OPTIONFLAG_NODELWORDNORMAL 0x0010(清除Word的模板文件)

OPTIONFLAG_NOENCOUDEURL 0x0020(设置URL的是否UTF8编码) OPTIONFLAG_SHOWPRESS 0x0080(是否显示进度条) OPTIONFLAG_DOCSHA1 0x0400(设置此项则IsModify有效) 示 例:

//1.调用LoadOriginalFile打开URL上路径的时候 // 如果对URL进行UTF8编码就调用 Obj.OptionFlag |= 0x0020;

// 如果不对URL编码调用下面这句(默认) Obj.OptionFlag &= 0xffdf;

Obj.LoadOriginalFile(\//2.在上传和下载的时候

//调用下面语句,则显示进度条: Obj.OptionFlag |= 0x0080;

//调用下面语句,则不显示进度条(默认): Obj.OptionFlag &= 0xff7f;

//3.在上传时候设置是否对文件加密和压缩 //调用下面语句,则对文件加密和压缩: Obj.OptionFlag |= 0x0004;

//调用下面语句,则不对文件加密和压缩(默认):

Obj.OptionFlag &= 0xfffc;

2.2.8 Is2007 原 型: long Is2007;

功 能:判断是否Office2007,只读 参 数: 返回值:

1:是2007版本 0:不是2007版本 示 例:

//判断当前Office是不是2007版本 document.all.WebOffice1. Is2007();

2.2.9 lContinue 原 型: long lContinue;

功 能:用于NotifyWordEvent的处理函数中,可以终止相应事件的继续执行 参 数: 返回值:

1:可以继续执行(默认) 0:终止默认操作 示 例:

//禁止关闭当前的Word/Excel/Wps文档 OnNotifyWordEvent(BSTR strEventName) {

if(strEventName == “DocumentBeforeClose”) {

lContinue = 0; } }

2.3 事件

2.3.1

NotifyWordEvent 原 型: void NotifyWordEvent(BSTR strEventName); 说 明:捕获部分Word/Excel/Wps事件。

参数:strEventName?Word/Excel的事件名,可能是以下的数值

DocumentChange

DocumentBeforeClose DocumentBeforePrint DocumentBeforeSave

备注:本事件在本版本扩展到Excel和Wps的支持,且可以终止该事件的继续执行(使用属性lContinue)。

2.3.2 NotifyCtrlReady 原 型: void NotifyCtrlReady();

说 明:当控件准备完毕后触发,一般在这个事件中完成初始化的操作。

2.3.3 NotifyToolBarClick 原 型: void NotifyToolBarClick(long iIndex); 参 数:

long iIndex : 工具栏按钮ID。

ID_RETURN 32769 ID_NEW 32770 ID_OPEN 32771 ID_SAVEAS 32772 ID_FULLSCREAN 32773 ID_PRINT 32774 ID_PRINTVIEW 32775

说 明:

每个按钮都有默认的处理动作,如果不希望触发默认的处理动作,需要在此时间中设置属性lEventRet = 0;

以下实例截获了SAVEAS的按钮事件。 //1. 定义事件处理函数

//2. 截获处理事件

function WebOffice1_NotifyToolBarClick(lCmd) { if(32772==lCmd) {

document.all.WebOffice1.lEventRet = 0; } }

三、ASP例子说明

3.1 Access数据库结构

表doc

======================================== id 自动编号 DocID 文本(10) DocTitle 文本(10) DocType 文本(15) DocData 日期/时间 DocContent OLE 对象

======================================== 说明:DocContent为上传的Office文档的数据,为二进制数据类型,如果使用SQLServer请改为Image类型。

3.2 演示程序主要页面说明

config.asp 取得服务器的项目文件目录,赋值给Application对象,供接口调用 docEidt.asp 调用weboffice控件在线编辑word,并提交给savedoc.jsp页面上传保存word文档

saveDoc.asp 保存表单元素和上传的word文件

getDoc.asp 取得数据库中的记录并返回给调用它的页面 debug.htm 用于调试数据传送到saveDoc.asp页 template 用于存放红头文件的模板

3.3 开发必读

1) 调用控件的时候尽量在控件ID前加“document.all”,如:

document.all.WebOffice1

2) Javascirpt区分大小写,使用时请注意。 3) WebOffice控件为VC++6编写,控件的所有方法和参数区分大小写,请严格参考本手册。 4) 在本控件的演示程序中,有个debug.hml文件用于测试表单元素和文件上传。

四、FAQ

4.1 如何把文件直接上传到服务器

WebOffice通过Http协议实现文件直接上传到服务器,原理见附件一《WebOffice文件Http上传原理》

五、附录

5.1 WebOffice文件Http上传原理

WebOffice文件Http上传原理分析 WebOffice控件使用了自身的文件Http上传接口实现文件和表单域的上传保存,本文将简要介绍该上传方式的原理和使用方法。注: WebOffice的上传接口和AIP是一致的。 原理 因为Web页面上的WebOffice打开的文件无法随表单记录提交到处理页面,所以我们把文件模拟成表单的文件域,通过接口把文件和表单元素发送到保存记录的页面(过程类似表单的提交)。 主要上传接口: ? HttpInit(); 该方法用于初始化上传接口,不需要设置参数 ? HttpAddPostString(String FieldName, String someValue); 添加要提交的表单域, FieldName是要上传表单域名称,someValue是表单域值 例一: HttpAddPostString(\它类似域表单域的 例二: HttpAddPostString(\ …. 注意:如果使用上传接口,那么form表单里的表单域不会被提交到处理页面。需要手工添加到上传接口(HttpAddPostString接口),然后通过控件发送到处理页面。例二使用了“WebForm.username.value”获取表单域值。 ? HttpAddPostCurrFile(String fileName, String ReName); 添加当前WebOffice编辑的文件给上传接口,该接口把文件模拟到成一个表单的文件域,并提交到处理页面。 例一: HttpAddPostCurrFile(\该接口模拟表单文件域如下:

注意:第二个参数为空表示控件自动为文件命名,如:dj_temp.aip,如果需要重命名可以在第二个参数指明文件名称,也可在保存页面指定文件名称。 ? HttpPost(String url); 执行上传操作将文件和表单域提交到url的页面进行保存操作,并获取url页面返回的执行结果 (是否成功,可以根据这个结果来获取服务器端执行的结果)。 url支持绝对路径和相对路径。 绝对路径,例如:http://192.168.0.1/savedoc.asp 相对路径要以“./”或者“../”开头。例如:./savedoc.asp 完整的上传接口演示 function SaveDoc() { var returnValue; // 保存页面的返回值 document.all.WebOffice1.HttpInit(); // 初始化Http引擎 // 添加相应的Post元素 } document.all.WebOffice1.HttpAddPostString(\// 添加上传文件 document.all.WebOffice1.HttpAddPostCurrFile(\// 提交上传文件 returnValue = document.all.WebOffice1.HttpPost(\if(\ } alert(\文件上传成功\alert(\文件上传失败\ } else { 关于保存 WebOffice上传接口将数据流以Http方式提交到保存页面,至于对数据处理就和普通的文件上传处理一样了,具体代码参考附件(asp和jsp的实现)。

本文来源:https://www.bwwdw.com/article/ab8p.html

Top