WebOffice開發(fā)系列指南
當(dāng)前位置:點(diǎn)晴教程→知識管理交流
→『 技術(shù)文檔交流 』
WebOffice開發(fā)系列指南
WebOffice開發(fā)系列02-如何打開文件 WebOffice開發(fā)系列03-修訂留痕 WebOffice開發(fā)系列04-安全控制 (防止復(fù)制、打印、保存) WebOffice開發(fā)系列05-菜單控制 WebOffice開發(fā)系列06-自定義工具欄 (添加工具欄按鈕、調(diào)節(jié)工具欄顏色) WebOffice開發(fā)系列08-文件上傳到服務(wù)器 WebOffice開發(fā)系列09-其他功能-全屏-VBA webOffice控件自動下載是指在打開網(wǎng)頁時,網(wǎng)頁會自動把webOffice控件下載下來,從而可以將word、excel嵌入到網(wǎng)頁中??丶詣酉螺d的相關(guān)代碼如下: < object id=WebOffice height=768 width="100%" style="LEFT: 0px; TOP: 0px" classid="clsid:E77E049B-23FC-4DB8-B756-60529A35FAD5" codebase="../js/WebOffice1.ocx#version=6,0,4,0"> <param name="_ExtentX" value="6350"> <param name="_ExtentY" value="6350"> </object> 上面的腳本意思是: 自動更新classid= FF1FE7A0-0578-4FEE-A34E-FB21B277D561 的COM組件, 更新地址為 ../js/WebOffice1.ocx,codebase后的路徑為相對路徑也可為絕對路徑,要更新的最新版本為6,0,4,0。 此時,IE會自動訪問注冊表,如果發(fā)現(xiàn)當(dāng)前機(jī)器未安裝或者當(dāng)前版本低于6,0,4,0,就會自動下載。
頁首 WebOffice開發(fā)系列02-如何打開文件單擊打開文件按鈕,可以在webOffice中打開文件,具體操作如圖所示:
1004291534911966484dcfde21.jpg 打開文檔的接口為LoadOriginalFile,其接口描述如下: 原 型: long LoadOriginalFile(BSTR pcFileNameOrUrl, BSTR pcType); 功 能:新建、裝載Office文檔 參 數(shù): pcFileNameOrUrl: 要裝載文件的本地路徑或者URL,值為空表示新建文檔,如果是在Http的Web環(huán)境下,可以傳相對路徑. pcType: doc:打開、新建Word文件 xls:打開、新建Excel文件 ppt:打開、新建PPT 文件 wps:打開、新建WPS 文件 返回值: 為 0:失敗 非0:成功 示 例: // 通過URL打開一個服務(wù)器文件,getdoc.asp代碼見演示文件 document.all.WebOffice1.LoadOriginalFile("http://127.0.0.1/getdoc.asp?id=8", "doc"); // 通過URL打開一個服務(wù)器文件,相對路徑 document.all.WebOffice1.LoadOriginalFile("/getdoc.asp?id=8", "doc"); document.all.WebOffice1.LoadOriginalFile("./getdoc.asp?id=8", "doc"); // 新建Excel document.all.WebOffice1.LoadOriginalFile("", "xls"); ==================特別注意=============================== 建議在NotifyCtrlReady 事件中調(diào)用 LoadOriginalFile 接口,否則有可能出現(xiàn)Word窗口脫離IE界面的問題。 <SCRIPT language=javascript event=NotifyCtrlReady for=WebOffice1> /**************************************************** * * 在裝載完Weboffice(執(zhí)行<object>...</object>) * 控件后執(zhí)行 "WebOffice1_NotifyCtrlReady"方法 * ****************************************************/ WebOffice1_NotifyCtrlReady() </SCRIPT> WebOffice1_NotifyCtrlReady(){ document.all.WebOffice1.LoadOriginalFile("", "doc"); } 您沒有權(quán)限查看這個主題的附件。
頁首 WebOffice開發(fā)系列03-修訂留痕webOffice對文檔的修訂操作提供了豐富的接口,其接口為:document.all.WebOffice1.SetCurrUserName("user_name");
文檔操作的具體步驟如圖所示,先以Test用戶身份對文檔進(jìn)行編輯,如圖所示: 10042915368ed41a99e4cc92ba.jpg 編輯完成上傳后,其他用戶如果想修訂文檔可以單擊“修訂文檔”的按鈕,接口為: // 開始修訂 document.all.WebOffice1.SetTrackRevisions(1); // 接受修訂 document.all.WebOffice1.SetTrackRevisions(4); 編輯文檔的時候字體會針對不同的用戶顯示不同的顏色,如下圖所示: 10042915369c8f50cabf3a5c18.jpg 單擊“顯示修訂”會顯示所有其他用戶的修改和刪除的操作,單擊“隱藏修訂”時就會隱藏所有的修訂, 文檔文字的顏色會變成同原文檔的文字一樣,而且刪除的橫線也會去掉,其接口如下: // 隱藏修訂 document.all.WebOffice1.ShowRevisions(0); // 隱藏修訂 document.all.WebOffice1.ShowRevisions(0); 如下圖所示: 10042915369c8f50cabf3a5c18.jpg 單擊“接受所有修訂”則文檔的修訂就會生效,否則單擊“拒絕所有修訂”文檔的所有修訂失效,文檔內(nèi)容和初稿內(nèi)容一致。 //接受當(dāng)前所有修訂信息 document.all.WebOffice1.SetTrackRevisions(4); 單擊“獲取修訂信息”則會獲取所有對文檔進(jìn)行修訂的用戶的相關(guān)信息及修訂日期,接口描述如下: 原 型: BSTR GetRevInfo(long lIndex, long lType); 功 能:獲取修訂節(jié)點(diǎn)的信息(修訂人,修訂的時間,修訂的動作) 參 數(shù): lIndex: 修訂的節(jié)點(diǎn)編號 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 == "1":表示"插入"的操作 vRet == "2":表示"刪除"的操作 //4.獲取修訂的內(nèi)容 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("1" == vOpt){ vOpt = "插入"; }else if("2" == vOpt){ vOpt = "刪除"; }else{ vOpt = "未知操作"; } vDate = new String(document.all.WebOffice1.GetRevInfo(i,1)); vDate = parseFloat(vDate); dateObj = new Date(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內(nèi)容:" + document.all.WebOffice1.GetRevInfo(i,3)); } 100429153626ae947d8d6fde50.jpg 您沒有權(quán)限查看這個主題的附件。
頁首 WebOffice開發(fā)系列04-安全控制 (防止復(fù)制、打印、保存)Weboffice可以對word文檔實(shí)行全面的安全控制,增強(qiáng)了文檔的安全性,用戶在編輯文檔后在輸入框中輸入密碼,
然后單擊“保護(hù)文檔”,上傳保存后別的用戶則無法對文檔進(jìn)行編輯,需要輸入正確的密碼后才可編輯,接口描述如下: 原 型: long ProtectDoc(long lProOrUn, long lType, BSTR strPWD); 功 能:文檔保護(hù) 參 數(shù): lProOrUn: └ 1:為保護(hù)文檔 └ 0:為解鎖文檔 lType : └ 0 :文檔保護(hù),只允許修訂 └ 1 :文檔保護(hù),只允許批注 └ 2 :文檔完全保護(hù),不允許任何操作 strPWD:文檔保護(hù)、解鎖時所需設(shè)置的密碼 返回值: 示 例: // 保護(hù)文檔,只允許修訂 document.all.WebOffice1.ProtectDoc(1, 0, "12345"); // 解鎖文檔 document.all.WebOffice1.ProtectDoc(0, 0, "12345"); 如圖所示: 10042915390aef3d09dccc1c7f.jpg 單擊“禁止打印”可以防止非法用戶對文檔進(jìn)行打印操作,單擊“禁止復(fù)制”可以去掉word的復(fù)制粘貼功能,單擊“允許復(fù)制”則恢復(fù)。 相關(guān)的接口描述如下: 原 型: long SetSecurity(long lFlag) 功 能: 設(shè)置文檔安全選項(xiàng) 參 數(shù): lFlag:按位標(biāo)記的控制開關(guān)。 0x01表示不允許打印(當(dāng)?shù)谝晃粸?時有效) 0x02表示不允許保存(當(dāng)?shù)诙粸?時有效) 0x04表示不允許復(fù)制(當(dāng)?shù)谌粸?時有效) 0x08表示不允許拖動(當(dāng)?shù)谒奈粸?時有效) 0x8000表示清除開關(guān)(當(dāng)最高位為1時有效) 返回值: 示 例: //禁止打印 Object.SetSecurity(0x01); //恢復(fù)允許打印 Object.SetSecurity(0x01 + 0x8000); //禁止保存 Object.SetSecurity(0x02); //恢復(fù)允許保存 Object.SetSecurity(0x02 + 0x8000); //禁止復(fù)制 Object.SetSecurity(0x04); //恢復(fù)允許復(fù)制 Object.SetSecurity(0x04 + 0x8000); //禁止打印、保存、復(fù)制 Object.SetSecurity(0x01+0x02+0x04); //恢復(fù)允許打印、保存、復(fù)制 Object.SetSecurity(0x01+0x02+0x04+0x8000); 通過事件方式進(jìn)行安全控制,原理是通過weboffice控件中的NotifyWordEvent事件捕獲捕獲部分Word/Excel/Wps事件,在事件執(zhí)行前進(jìn)行相關(guān)設(shè)置,從而對word文檔進(jìn)行安全控制。 您沒有權(quán)限查看這個主題的附件。
頁首 WebOffice開發(fā)系列05-菜單控制由于控件升級
現(xiàn)在控制菜單有兩種方式:
新接口: 屏蔽菜單 1.《2003屏蔽所有的菜單,除了參數(shù)的4個菜單。 2.《2007 功能區(qū)隱藏。當(dāng) pcExcludeBar1= "show" 功能區(qū)顯示,否則隱藏 HideMenuArea(LPCTSTR pcExcludeBar1, LPCTSTR pcExcludeBar2, LPCTSTR pcExcludeBar3, LPCTSTR pcExcludeBar4) 示例: 隱藏offcie 2003所有菜單工具欄格式欄等 document.all.WebOffice1.HideMenuArea(“”,””,””,””); 效果如下: 1004291736b3e45edd9e0a3714.jpg 顯示菜單欄,常用工具欄: document.all.WebOffice1.HideMenuArea(“Menu Bar”,”Standard”,””,””); 隱藏 office 2007 功能區(qū) document.all.WebOffice1.HideMenuArea(“”,””,””,””); 顯示W(wǎng)ord 2007 功能區(qū) document.all.WebOffice1.HideMenuArea(“show”,””,””,””); 舊接口: Word 2003 : short SetToolBarButton2(VARIANT lIndex, VARIANT lID, VARIANT lControl); 設(shè)置所有菜單項(xiàng)或者菜單項(xiàng)按鈕的隱藏和現(xiàn)實(shí) lIndex:要顯示隱藏的元素名稱。根據(jù)Word/Excel 的不同版本,可能有部分不同 └ Standard:常用工具條 └ Formatting:格式化工具條 └ Menu Bar:菜單欄 lID:要操作的菜單元素的位置 lControl:按鈕狀態(tài)控制,按位控制,如該值為1時,它的二進(jìn)制為0001,表示該菜單元素是顯示但不可用第一位為:是否顯示。0:隱藏;1:顯示第二位為:是否可用。0:不可用;1:可用。第三位為:工具欄和菜單欄是否恢復(fù)到默認(rèn)狀態(tài)。0:不恢復(fù);1:恢復(fù)。第四位為:是否隱藏整個菜單欄或工具欄,1為隱藏,0為顯示 示例: //隱藏菜單欄 document.all.WebOffice1.SetToolBarButton2("Menu Bar",1,8); //顯示菜單欄 document.all.WebOffice1.SetToolBarButton2("Menu Bar",1,11); //隱藏常用工具欄 document.all.WebOffice1.SetToolBarButton2("Standard",1,8); //顯示常用工具欄 document.all.WebOffice1.SetToolBarButton2("Standard",1,11); //隱藏格式工具欄 document.all.WebOffice1.SetToolBarButton2("Formatting",1,8); //顯示格式工具欄 document.all.WebOffice1.SetToolBarButton2("Formatting",1,11); 效果圖如下: 100429173778c902439dcacf57.jpg 此時用戶如果需要將自帶工具欄也隱藏可以采用weboffice工具欄隱藏接口: document.all.WebOffice1.ShowToolBar=0;// 0 隱藏 1 顯示 效果如圖: 100429173778c902439dcacf57.jpg 1 小時前 Word 2007: long HideMenuAction(short shMenuMode, long lValue); hMenuMode:設(shè)置模式:具體值及含義如下: 0:Office2003以下,直接關(guān)閉菜單,暫未支持??墒褂肧etToolBarButton2接口控制 1:Office2007以上,需要設(shè)置關(guān)閉菜單列表 2:擴(kuò)展值,暫無含義 3:擴(kuò)展值,暫無含義 4:擴(kuò)展值,暫無含義 5:設(shè)置關(guān)閉菜單列表后,需調(diào)用此值激活。并第二個參數(shù)設(shè)置為0,具體見示例。 6:恢復(fù)菜單顯示及功能使用,第二個參數(shù)設(shè)置為0 lValue:設(shè)置要隱藏的菜單及禁止復(fù)制、粘貼功能 0x1000:十進(jìn)制為4096--粘貼無效 0x2000:十進(jìn)制為8192—復(fù)制無效 0x100000:十進(jìn)制為1048576—開始菜單 0x200000:十進(jìn)制為2097152—插入菜單 0x400000:十進(jìn)制為4194304—頁面布局菜單 0x800000:十進(jìn)制為8388608—引用菜單 0x1000000:十進(jìn)制為16777216—郵件菜單 0x2000000:十進(jìn)制為33554432—審閱菜單 0x4000000:十進(jìn)制為67108864—視圖菜單 0x8000000:十進(jìn)制為134217728—開發(fā)工具菜單 0x10000000:十進(jìn)制為268435456—加載項(xiàng)菜單 //設(shè)置粘貼無效 document.all.WebOffice1. HideMenuAction(1,4096);//設(shè)置動作 document.all.WebOffice1. HideMenuAction(5,0);//激活設(shè)置 //設(shè)置復(fù)制無效 document.all.WebOffice1. HideMenuAction(1,4096); document.all.WebOffice1. HideMenuAction(5,0); //設(shè)置開始菜單隱藏 document.all.WebOffice1. HideMenuAction(1,1048576); document.all.WebOffice1. HideMenuAction(5,0); //設(shè)置多菜單隱藏(比如隱藏開始、插入、頁面布局菜單) document.all.WebOffice1. HideMenuAction(1,1048576+2097152+4194304); document.all.WebOffice1. HideMenuAction(5,0); //恢復(fù)至設(shè)置之前狀態(tài)(即正常狀態(tài)) document.all.WebOffice1. HideMenuAction(6,0); 您沒有權(quán)限查看這個主題的附件。
頁首 WebOffice開發(fā)系列06-自定義工具欄 (添加工具欄按鈕、調(diào)節(jié)工具欄顏色)調(diào)節(jié)顏色:
SetCustomColour(long lType, long lColour) lType: 設(shè)置膚色 custColorToolBarBKColor = 0, 底色 custColorToolBarMiddleColor = 1, 中間色 custColorToolBarTopColor = 2, 上色 custColorToolBarBottomColor = 3, 下色 lColour: 為顏色值 0-65535 已經(jīng)有的幾個模式 //淡紫色 document.all.WebOffice1.SetCustomColour(2,243*256*256+244*256+250); document.all.WebOffice1.SetCustomColour(1,225*256*256+226*256+236); document.all.WebOffice1.SetCustomColour(3,153*256*256+151*256+181); document.all.WebOffice1.SetCustomColour(0,243*256*256+243*256+247); 10042916135b8801f3fa7105a9.jpg //深藍(lán)色 document.all.WebOffice1.SetCustomColour(2,131*256*256+97*256+59); document.all.WebOffice1.SetCustomColour(1,239*256*256+216*256+138); document.all.WebOffice1.SetCustomColour(3,133*256*256+94*256+53); document.all.WebOffice1.SetCustomColour(0,130*256*256+92*256+52); 1004291613e2bbbdebd085fd6d.jpg //淺黃色 document.all.WebOffice1.SetCustomColour(2,220*256*256+235*256+254); document.all.WebOffice1.SetCustomColour(1,196*256*256+219*256+249); document.all.WebOffice1.SetCustomColour(3,136*256*256+174*256+228); document.all.WebOffice1.SetCustomColour(0,191*256*256+214*256+249); 1004291613ff44a7d13695f472.jpg 添加按鈕: SetCustomToolBtn(long lIndex, LPCTSTR pcBtnText) 設(shè)置自定義菜單的文字信息 系統(tǒng)內(nèi)置了 5 個按鈕。 SetCustomToolBtn(0,"test0"); SetCustomToolBtn(1,"test2"); SetCustomToolBtn(2,"test2"); SetCustomToolBtn(3,"test3"); SetCustomToolBtn(4,"test4"); 示例:document.all.WebOffice1.SetCustomToolBtn(0, "new1"); document.all.WebOffice1.SetCustomToolBtn(1, "new2"); document.all.WebOffice1.SetCustomToolBtn(2, "new3"); document.all.WebOffice1.SetCustomToolBtn(3, "new4"); document.all.WebOffice1.SetCustomToolBtn(4, "new5"); 10042916131b6837953216bbe2.jpg 如何實(shí)現(xiàn)自定義功能: 首先頁面中要加入js監(jiān)聽事件 <SCRIPT language=javascript event=NotifyToolBarClick(iIndex) for=WebOffice1> <!-- WebOffice1_NotifyToolBarClick(iIndex); //--> </SCRIPT> function WebOffice1_NotifyToolBarClick(iIndex){ if(iIndex>=32776){ alert(iIndex+"新加按鈕觸發(fā)的事件可在這里寫自己的功能"); } } 您沒有權(quán)限查看這個主題的附件。
頁首 WebOffice開發(fā)系列08-文件上傳到服務(wù)器文件上傳到服務(wù)器,目前WebOffice支持四種模式: 1. WebOffice 內(nèi)部發(fā)起HTTP協(xié)議的發(fā)送,采用Post模式。(詳細(xì)的說明,可以參照開發(fā)文檔) WebOffice控件使用了自身的文件Http上傳接口實(shí)現(xiàn)文件和表單域的上傳保存,本文將簡要介紹該上傳方式的原理和使用方法。注:點(diǎn)聚WebOffice的上傳接口和AIP是一致的。 原理 因?yàn)閃eb頁面上的WebOffice打開的文件無法隨表單記錄提交到處理頁面,所以我們把文件模擬成表單的文件域<input type=file …>,通過接口把文件和表單元素發(fā)送到保存記錄的頁面(過程類似表單的提交)。 主要上傳接口: HttpInit();該方法用于初始化上傳接口,不需要設(shè)置參數(shù) HttpAddPostString(String FieldName, String someValue);添加要提交的表單域, FieldName是要上傳表單域名稱,someValue是表單域值 例一: HttpAddPostString("username", "zhangSan"); 它類似域表單域的 <input type=text name=username value=zhangSan> 例二: HttpAddPostString("username", WebForm.username.value); …. <form name= WebForm ><input type=text name=username value=zhangSan></form> 注意:如果使用點(diǎn)聚上傳接口,那么form表單里的表單域不會被提交到處理頁面。需要手工添加到上傳接口(HttpAddPostString接口),然后通過控件發(fā)送到處理頁面。例二使用了“WebForm.username.value”獲取表單域值。 HttpAddPostCurrFile(String fileName, String ReName); 添加當(dāng)前WebOffice編輯的文件給上傳接口,該接口把文件模擬到成一個表單的文件域,并提交到處理頁面。 例一: HttpAddPostCurrFile("AipFile", ""); 該接口模擬表單文件域如下: <input type=file name=AipFile > 注意:第二個參數(shù)為空表示控件自動為文件命名,如:dj_temp.aip,如果需要重命名可以在第二個參數(shù)指明文件名稱,也可在保存頁面指定文件名稱。 HttpPost(String url); 執(zhí)行上傳操作將文件和表單域提交到url的頁面進(jìn)行保存操作,并獲取url頁面返回的執(zhí)行結(jié)果 (是否成功,可以根據(jù)這個結(jié)果來獲取服務(wù)器端執(zhí)行的結(jié)果)。 url支持絕對路徑和相對路徑。 絕對路徑,例如:http://192.168.0.1/savedoc.asp 相對路徑要以“./”或者“../”開頭。例如:./savedoc.asp 完整的上傳接口演示 function SaveDoc() { var returnValue; // 保存頁面的返回值 document.all.WebOffice1.HttpInit(); // 初始化Http引擎 // 添加相應(yīng)的Post元素 document.all.WebOffice1.HttpAddPostString("username", WebForm. username.value); // 添加上傳文件 document.all.WebOffice1.HttpAddPostCurrFile("AipFile ",""); // 提交上傳文件 returnValue = document.all.WebOffice1.HttpPost("../saveDoc.jsp"); if("true" == returnValue){ alert("文件上傳成功"); } else { alert("文件上傳失敗") } } WebOffice上傳接口將數(shù)據(jù)流以Http方式提交到保存頁面,至于對數(shù)據(jù)處理就和普通的文件上傳處理一樣了 ---------------------------------------------JSP上傳代碼------------------------------------------------------------- 上傳按鈕的onclick事件里內(nèi)容: var webObj=document.getElementById("WebOffice1"); webObj.HttpInit(); webObj.HttpAddPostCurrFile("FileBlody");//上傳當(dāng)前文件 webObj.HttpAddPostString("name",name);//可以通過我們的控件將一些需要傳到服務(wù)器的其他內(nèi)容隨文檔一起上傳 returnValue = webObj.HttpPost("http://127.0.0.1:8080/TestWebOffice/saveDoc.jsp"); if("ok" == returnValue){ alert("上傳成功!"); }else if("failed" == returnValue){ alert("上傳失??!"); } 接收頁面saveDoc.jsp使用了上傳組件SmartUpload <%@ page contentType="text/html;charset=GB2312" %><jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" /> <% try{ // 初始化上傳組件 mySmartUpload.initialize(pageContext); mySmartUpload.upload(); String FilePath; com.jspsmart.upload.File myFile = null; myFile = mySmartUpload.getFiles().getFile(0); FilePath = myFile.getFileName(); //System.out.println(FilePath); if (!myFile.isMissing()){ myFile.saveAs("upload/"+FilePath,mySmartUpload.SAVE_VIRTUAL); } out.clear(); out.print("ok"); out.flush(); }catch(Exception e){ out.clear(); out.print("failed");//返回控件HttpPost()方法值。 out.flush(); }%> ---------------------------------------------JSP上傳代碼 END------------------------------------------------------------- 2. 通過AJAX上傳二進(jìn)制數(shù)據(jù) 原理: AJAX負(fù)責(zé)上傳數(shù)據(jù)。 WebOffice負(fù)責(zé)把組織待上傳的數(shù)據(jù)。 ------------------------------例子------------------------------------------------------------------------------------------ //創(chuàng)建AJAX對象 function createXMLHttpRequest(){ var xmlHttp = null; if (window.ActiveXObject){ xmlHttp = new ActiveXObject("Microsoft.XMLHTTP") }else if (window.XMLHttpRequest){ xmlHttp = new XMLHttpRequest() }; return xmlHttp }; //發(fā)送數(shù)據(jù) function Send2(){ var xmlHttp = this.createXMLHttpRequest(); var webObj=document.getElementById("WebOffice1"); webObj.HttpInit(); //初始化Http引擎 // 添加相應(yīng)的Post元素 webObj.HttpAddPostString("id", "0"); webObj.HttpAddPostString("DocTitle", "Test001"); webObj.HttpAddPostString("DocID", "Test001"); webObj.HttpAddPostString("DocType","doc"); webObj.HttpAddPostCurrFile("DocContent",""); //設(shè)置接受數(shù)據(jù)的頁面。采用同步發(fā)送機(jī)制。 xmlHttp.open("POST", "http://192.168.1.1/WebOffice/savedoc.jsp?time=隨機(jī)數(shù)生成的時間,防止IE緩存", false); //打包待上傳的數(shù)據(jù)流 var vv = document.all.WebOffice1.GetHttpPostFormatData(1); //發(fā)送數(shù)據(jù) xmlHttp.setRequestHeader("Content-Type","multipart/form-data; boundary=--MULTI-PARTS-FORM-DATA-BOUNDARY"); xmlHttp.send(vv); //判斷接受數(shù)據(jù) if (xmlHttp.status == 200){ if (!xmlHttp.responseText){ }; alert(xmlHttp.responseText); } alert(xmlHttp.status); }; ------------------------------例子 END------------------------------------------------------------------------------------------ 3. WebOffice負(fù)責(zé)把文件生成為字符串 原理: 通過接口:GetFileBase64 把二進(jìn)制文件生成為字符串。通過SaveBinaryFileFromBase64把字符串還原為二進(jìn)制文件。 適用于 B/S和C/S模式。 --------------------保存字符串到數(shù)據(jù)庫中------------------------------- var v = document.all.WebOffice1.GetFileBase64("d:\\Server.dmp",1); //把字符串賦值給隱藏域"FileData" document.all.FileData.value = v; //submit 就可以了。 ----------------------打開字符串文件------------------------------------ //獲取臨時文件名 var vTempFile = document.all.WebOffice1.GetTempFilePath(); //把字符串保存為臨時文件 var vBase64 = "<%=FileData%>" document.all.WebOffice1.SaveBinaryFileFromBase64(vTempFile ,vBase64 ); //調(diào)用接口,打開文件即可 4. WebOffice返回文件的數(shù)據(jù)流,調(diào)用程序負(fù)責(zé)傳遞數(shù)據(jù),一般用于C/S開發(fā)模式 VARIANT GetFileBinary(LPCTSTR strFilePath)
頁首 WebOffice開發(fā)09-其他功能Weboffice具有全屏顯示的功能,單擊“全屏”,word文檔會全屏顯示在屏幕上,單擊右上角的“返回”則可以返回原來的模式,如下圖所示: 10042915429102f0ccbf84212d.jpg Weboffice支持VBA編程,在使用js調(diào)用weboffice的接口獲取VBA對象,同過VBA對象可以使用VBA編程對word文檔進(jìn)行編輯,具體的操作如下: var obj=document.getElementById(“webOffice1”).GetDocumentObject(); 使用obj就可用調(diào)用word的VBA接口,從而對word進(jìn)行操作。 該文章在 2015/6/2 22:44:09 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |