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的实现)。
正在阅读:
WebOffice-开发文档04-23
一份曾经的马克思考试试题09-23
应收账款管理本科毕业论文01-24
2018年中考语文写景散文阅读理解专项复习试题及答案04-29
历史的闽西09-21
传媒市场化的利弊05-20
福建省福州市2022届九年级中考冲刺模拟试卷语文试题(二)04-13
教育局党组书记抓基层党建工作述职报告08-27
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- WebOffice
- 文档
- 开发
- 《人民币银行结算账户管理系统业务处理办法》(银办发74号
- 可口可乐公司ISO22000体系
- “十三五”规划重点-储酒罐项目建议书(立项报告)
- 三年级阅读训练
- 低压集抄改造分类及技术要求
- 人教版六年级数学上册分数乘法测试题
- 2002-2011年司考—单项选择题
- 中国人民解放军建军周年军史知识竞赛
- 居民消费影响因素分析 - 图文
- 水量计算
- 国际财务管理中的名词解释
- 02 2008年深圳市高三年级第二次调研考试(理数)试题-1
- 2013仁爱版英语七年级上册期末复习资料
- 国土资规〔2015〕5号《关于支持新产业新业态发展促进大众创业万
- 杨氏族谱
- 移动通信专业英文词汇
- 铝电解净化系统高精度自控仪表安装施工工法(部级工法) - 图文
- 交通信号配时方案设计
- 高低压配电室电气设备巡检表0
- 大体积筏板砼施工方案