




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、永中Office二次開發(fā)技術(shù)手冊(cè)永中Office二次開發(fā)技術(shù)手冊(cè)前言一、宏和二次開發(fā)在實(shí)現(xiàn)辦公自動(dòng)化的今天,我們經(jīng)常會(huì)碰到這樣一個(gè)問題,在使用辦公軟件時(shí)總要重復(fù)流程一樣的相同操作,這使工作變得繁瑣而枯燥,能不能提供一種方法,使這些相同操作能夠通過一個(gè)命令自動(dòng)完成或者使用更為簡(jiǎn)單的途徑得到呢?宏因此而產(chǎn)生了。宏是指用一個(gè)符號(hào)名稱所代表的一段程序代碼,將定義代碼段按實(shí)際參數(shù)進(jìn)行加工,形成實(shí)際代碼直接插入程序的執(zhí)行序列中。許多應(yīng)用程序具有建立宏的功能,它們可以把操作人員為解決某項(xiàng)問題而執(zhí)行的一些操作命令記下來(lái),形成一個(gè)文件段,并且用一個(gè)符號(hào)表示。當(dāng)同樣的問題重復(fù)執(zhí)行時(shí),只要輸入代表這一系列命令的宏命
2、令即可。這些代碼可以是由用戶編寫,也可以通過辦公軟件提供的宏錄制功能記錄下簡(jiǎn)單任務(wù)而生成。結(jié)合自己的需要,利用宏充分開發(fā)應(yīng)用程序潛在的功能,可以獲得使用上最大限度的滿足,這也就是通常意義上的二次開發(fā),即利用宏語(yǔ)言擴(kuò)展宿主程序的功能、集成不同類型的數(shù)據(jù)以實(shí)現(xiàn)辦公軟件在具體事件中的解決方案。永中Office為您提供了非常豐富而全面的宏API(API表示應(yīng)用程序接口),通過這些API您可以非常自如操作永中Office。并且使您在實(shí)現(xiàn)自定義的解決方案時(shí)更加得心應(yīng)手,更靈活的發(fā)揮永中Office 的集成優(yōu)勢(shì)。二、本手冊(cè)結(jié)構(gòu)第一部分為二次開發(fā)環(huán)境。永中Office的二次開發(fā),我們推薦,一是利用永中Offi
3、ce自帶的宏編輯器進(jìn)行開發(fā),二是可以在Eclipse上開發(fā)。第二部分為應(yīng)用和API我們?cè)诘?章給出了二次開發(fā)結(jié)構(gòu),也即永中Office二次開發(fā)的類層次圖。有了該類層次圖,就可以了解永中Office二次開發(fā)中的層次和對(duì)象了。第3章為總控,這里有二次開發(fā)應(yīng)用的總?cè)肟诘?章為電子表格應(yīng)用第5章為文字處理應(yīng)用,自由表格也在這一章第6章為幻燈片演示第7章為公共組件,包含2個(gè)主要組件:自選圖形和圖表第三部分為其它語(yǔ)言調(diào)用與應(yīng)用第8章為永中Office COM組件開發(fā)第9章為嵌入瀏覽器樣例第10章為嵌入Java應(yīng)用程序樣例附錄附錄一為永中Office 二次開發(fā)技巧集,我們列舉了一些二次開發(fā)技巧附錄一為永中O
4、ffice 二次開發(fā)FAQ我們希望起到拋磚引玉的作用。詳細(xì)的API說(shuō)明可以參見永中Office的API文檔。第一章 二次開發(fā)環(huán)境1.1宏編輯器中進(jìn)行二次開發(fā)1、從菜單“工具”“宏”“宏編輯器”,打開宏編輯器。2、在宏編輯器中,從菜單“插入”“模塊”,新建一個(gè)模塊。3、在模塊中,可以添加宏,通過宏,就可以操作永中Office。4、示例:將下面的宏代碼添加到模塊中,宏的名字是“insertValue”。樣例1.1.1/在當(dāng)前的工作表中,往單元格(2,3)中設(shè)值“apple” 。void insertValue() Application.gotoProduct(GlobalConstants.SP
5、READSHEET); Workbook workbook = Application.getWorkbooks().getActiveWorkbook(); Worksheet sheet = workbook.getWorksheets().getActiveWorksheet(); sheet.setCellValue(2, 3, apple);注意:永中Office的宏語(yǔ)言是JAVA。在模塊中添加宏時(shí),請(qǐng)不要添加方法的修飾符,如 public,private,protected,static,final 等。永中Office的宏只能在永中Office自己的文件格式(.eio)中使用,保
6、存為微軟格式文件時(shí)宏代碼會(huì)丟失。1.2使用Eclipse 進(jìn)行二次開發(fā)1、 下載并解壓Eclipse包。2、 在Eclipse目錄下點(diǎn)擊Eclipse可執(zhí)行文件,啟動(dòng)Eclipse。3、 在Eclipse中,新建一個(gè)項(xiàng)目:在菜單“File”“New”“Project.”彈出“New Project”對(duì)話框,在列表中選中“Java Project”選項(xiàng),下一步,給定一個(gè)項(xiàng)目名,假設(shè)項(xiàng)目名為“example”,完成,這樣就建立了一個(gè)名為 “example”的項(xiàng)目。4、在Eclipse的“Package Explorer”里,選中“example”節(jié)點(diǎn),右鍵彈出菜單,點(diǎn)擊“Properties”菜單
7、項(xiàng),在彈出的“Properties”對(duì)話框中選中左邊的“Java Build Path”,選中對(duì)話框右邊的第三項(xiàng)“Libraries”頁(yè)面,點(diǎn)擊“Add External Jars.”按鈕,將永中Office 按裝目錄下的“Yozo_Office.jar”添加進(jìn)編譯環(huán)境。這樣就可以應(yīng)用永中Office 的開發(fā)包對(duì)永中Office 進(jìn)行二次開發(fā)了。5、在Eclipse 的“Package Explorer”里,選中“example”節(jié)點(diǎn),選擇菜單“File”-“New”-“Class”彈出“New Java Class”對(duì)話框,填寫類名稱,假設(shè)為“MyTest”,點(diǎn)擊完成按鈕,這樣就在項(xiàng)目“ex
8、ample”中建立了一個(gè)名為 “MyTest”的新類。第二章 二次開發(fā)對(duì)象層次結(jié)構(gòu)API是Application Programming Interface(應(yīng)用程序編程接口)的縮寫,即一個(gè)主應(yīng)用程序的開發(fā)者提供給其他開發(fā)者使用的服務(wù)和功能。這意味著API允許一些外部程序訪問提供API的程序,即另外的程序通過主應(yīng)用程序的API而使用某一個(gè)子程序的功能。許多大的應(yīng)用程序都提供了API供二次開發(fā)者使用,如各種程序開發(fā)語(yǔ)言、各種操作系統(tǒng)及辦公軟件等。API不僅僅可以被外部應(yīng)用程序使用,許多大型應(yīng)用程序也使用API 以便于自身程序的一部分與另一部分聯(lián)系。如果一套服務(wù)或幫助功能一個(gè)大應(yīng)用程序的內(nèi)核已被建
9、立,那么,一個(gè)做完了的API就可以使開發(fā)應(yīng)用程序的剩余部分變得十分輕松;此外,將其中一部分常用而且穩(wěn)定的API開放給用戶,用戶在此基礎(chǔ)上可以根據(jù)自己的需要開發(fā)出更加強(qiáng)大和個(gè)性化的功能,產(chǎn)品功能在適用過程中得到擴(kuò)展,與用戶的交互性也因此而更強(qiáng)。基于跨平臺(tái)操作的特性,永中Office充分考慮到用戶對(duì)功能擴(kuò)展的要求、不同需求對(duì)解決方案的要求及個(gè)性化等其它各方面的要求,在其內(nèi)置的宏編輯器中提供了一整套實(shí)現(xiàn)內(nèi)部功能的API供用戶調(diào)用;此外,永中Office宏編輯器還支持導(dǎo)入JAVA的類庫(kù)以使用JAVA 語(yǔ)言強(qiáng)大而豐富的類。任何API都是基于對(duì)象的操作,在操作對(duì)象的基礎(chǔ)上實(shí)現(xiàn)功能。永中Office二次開發(fā)
10、的API即相當(dāng)于JAVA語(yǔ)言中的方法,既可以是對(duì)某一對(duì)象單個(gè)屬性或事件的控制和操作,也可以是對(duì)整個(gè)對(duì)象進(jìn)行的操作,從而實(shí)現(xiàn)形式多樣的功能。2.1單實(shí)例和多實(shí)例永中Office二次開發(fā)體系支持單實(shí)例和多實(shí)例兩種方式。單實(shí)例方式通常在永中Office的宏編輯器中使用,多實(shí)例方式通常在外部調(diào)用永中Office時(shí)使用。單實(shí)例和多實(shí)例在代碼中的差別體現(xiàn)在創(chuàng)建永中Office實(shí)例時(shí),下面是示例代碼:?jiǎn)螌?shí)例示例:/創(chuàng)建永中Office桌面應(yīng)用單實(shí)例示例Application.getApplicationInstance()多實(shí)例示例:樣例2.1.1/創(chuàng)建永中Office桌面應(yīng)用多實(shí)例/永中Office初始化
11、參數(shù)AppParameters appParams = AppParameters.getInstance();/創(chuàng)建永中Office實(shí)例ApplicationFactory.createInstance(appParams);單實(shí)例和多實(shí)例除創(chuàng)建永中Office實(shí)例外,在具體功能性API調(diào)用方面沒有差別。更多單實(shí)例和多實(shí)例的操作見C3.1。注意:本手冊(cè)中為方便描述,除明確說(shuō)明外,其它代碼均以多實(shí)例方式描述。2.2二次開發(fā)對(duì)象層次結(jié)構(gòu)永中Office API的對(duì)象體系是基于一種繼承的結(jié)構(gòu),要訪問一個(gè)對(duì)象,必須清楚該對(duì)象在整個(gè)對(duì)象體系中的位置,通過JAVA的對(duì)象運(yùn)算符“.”從包含該對(duì)象的最外層開
12、始,由外及內(nèi)逐層找到其子對(duì)象,一直到所要訪問的對(duì)象。如要訪問文件名為“文件1.eio”的電子表格文檔中“工作表1”的“A1”單元格,需按如下格式書寫:Application.getWorkbooks().getWorkbook(C:/文件1.eio ).getWorksheet(工作表1).getCell(A1);為了使代碼簡(jiǎn)潔,可以使用訪問對(duì)象的簡(jiǎn)化格式。如果某對(duì)象的父對(duì)象是當(dāng)前對(duì)象,那么就可以直接對(duì)其子對(duì)象進(jìn)行訪問,例如以下是一個(gè)先打開一個(gè)文檔然后對(duì)其子對(duì)象進(jìn)行操作的代碼示例:樣例2.1.2/設(shè)置指定單元格內(nèi)容/新建電子表格應(yīng)用Workbook workbook = app.getWork
13、books().addWorkbook(GlobalConstants.SPREADSHEET);/獲得電子表格應(yīng)用文件中的工作表1Worksheet worksheet = workbook.getWorksheets().getWorksheet(工作表1);/在當(dāng)前工作表中選擇單元格“A1”Cell a1 = worksheet.getCell(A1);/在A1單元格中設(shè)值a1.setValue(apple);/在當(dāng)前工作表中選擇單元格“A2”ActiveWorksheet.select(A2);/當(dāng)前單元格設(shè)值A(chǔ)ctiveCell.setValue(Lenny);在永中Office的宏
14、中,把所有具有相同屬性和方法的,在對(duì)象體系中位于同一層次的對(duì)象劃歸為一個(gè)對(duì)象類,例如,在電子表格中,工作表的每個(gè)單元格都是一個(gè)Cell對(duì)象,這些Cell對(duì)象共同構(gòu)成了Cell對(duì)象類。永中Office宏編輯器提供的所有對(duì)象層次的頂部是Application,所有這些對(duì)象的訪問都必須從Application 開始。以下是永中Office宏編輯器常用對(duì)象的層次結(jié)構(gòu)圖。永中office二次開發(fā)對(duì)象層次圖集合對(duì)象單個(gè)對(duì)象WindowsWindow窗體集合窗體ApplicationOptions永中Office單實(shí)例應(yīng)用設(shè)置CommandBarCommandBarsIApplication永中Office
15、實(shí)例工具欄工具欄集合WorkbookWorkbooksApplicationFactiroy永中Office多實(shí)例管理器集成文件集成文件集合永中Office多實(shí)例PDFAttributePDF文件屬性Versions版本管理ChartsChart圖表圖表集合WorksheetsWorksheet工作表電子表格工作表集合DocumentsDocumentWorkbook集成文件文字處理文檔文字處理文檔集合PresentationsPresentation簡(jiǎn)報(bào)簡(jiǎn)報(bào)制作文檔集合TablesTable表格表格集合FileProperties文件屬性ShapeShapes自選圖形自選圖形集合電子表格對(duì)象
16、層次圖集合對(duì)象單個(gè)對(duì)象Characters字符屬性FontAttributeCell字體屬性單元格FillAttribute列操作集填充屬性ColumnsFormatCellAttribute格式屬性控件管理器ComponentManagerBorderAttribute邊框?qū)傩訬ames名稱管理器ConditionalFormating條件格式Print打印設(shè)置ConditionalFormationgDataRange條件格式設(shè)置RowsWorksheet單元格區(qū)域SortProperties排序設(shè)置工作表行操作集TextSplittingProperties文本分列設(shè)置Validatio
17、nPropertiesSsPageSetup數(shù)據(jù)校驗(yàn)設(shè)置頁(yè)面設(shè)置ScenariosSsCommentsScenario方案集合方案Comment批注集合批注HyperlinkSsHyperlinks超鏈接超鏈接集合SsShapeSsShapes自選圖形自選圖形集合文字處理二次開發(fā)對(duì)象層次圖集合對(duì)象單個(gè)對(duì)象Document文檔Section節(jié)ParagrahpsBaseText段落集合正文編輯區(qū)域EndNoteOptionsFootNote腳注屬性(正文管理)腳注編輯區(qū)域FootNoteOptionsEndNote尾注屬性(正文管理)尾注編輯區(qū)域HeaderParagraph頁(yè)眉編輯區(qū)域段落Fo
18、oter頁(yè)腳編輯區(qū)域TextRange文本區(qū)域?qū)ο骉ableTables表格集合表格StyleStyles樣式樣式集合(文檔管理)Function具體功能點(diǎn)FontAttributeStyle字體屬性(樣式格式)樣式ParagraphAttribute段落屬性(樣式格式)BorderAttribute邊框?qū)傩裕邮礁袷剑㏄ageBorderAttributeShadingAttribute頁(yè)面邊框?qū)傩訵ordBulletLevel底紋屬性TabStopsHyperlink項(xiàng)目符號(hào)與編號(hào)屬性(樣式格式)WaterAttributeTabStop制表位制表位集合(樣式格式)GradientAttr
19、ibute超鏈接屬性PatternAttribute漸進(jìn)色填充效果屬性PictureAttribute水印屬性圖案填充效果屬性FillAttribute填充屬性圖片填充效果屬性TextureAttribute紋理填充效果屬性FunctionBookMarks替換對(duì)象的格式查找匹配的制表位集合查找替換當(dāng)前選取的多個(gè)自選圖形WpShapeRangeReplacementFindTabStopsFindReplaceBookMark書簽書簽集合(文檔管理)具體功能點(diǎn)TrackChangesTrackChange修訂Field修訂集合(文檔管理)Fields域?qū)ο笥驅(qū)ο蠹螩ommentWpComme
20、nts批注批注集合(文檔管理)PenMarkManager手寫批注(文檔管理)PageNumberAttribute頁(yè)碼屬性Column分欄(章節(jié)管理)WpPageSetup頁(yè)眉設(shè)置(章節(jié)管理)Index索引IndexEntry索引項(xiàng)TableOfContent目錄Barcode條碼BarcodeInfo條碼信息屬性FindReplaceFindTabStopsReplacementWpShapeRange自選圖形管理器(文檔管理)某個(gè)自選圖形當(dāng)前選取的多個(gè)自選圖形查找替換查找匹配的制表位集合替換對(duì)象的格式FindReplaceFindTabStopsReplacementWpShapeRan
21、ge自選圖形管理器(文檔管理)某個(gè)自選圖形當(dāng)前選取的多個(gè)自選圖形查找替換查找匹配的制表位集合替換對(duì)象的格式MailingLabel標(biāo)簽MailMerge郵件合并WordCount字?jǐn)?shù)統(tǒng)計(jì)(文檔管理)WpShapeWpShapes自選圖形自選圖形管理器(文檔管理)ReplacementFindReplace替換對(duì)象的格式查找替換FindTabStops查找匹配的制表位集合TableAttributeTable表格表格屬性RowsRow表格行表格行集合Cells單元格集合ColumnsColumn表格列表格列集合Cell單元格ParagraphsCellAttribute單元格屬性簡(jiǎn)報(bào)制作二次開發(fā)
22、對(duì)象層次圖集合對(duì)象單個(gè)對(duì)象SlidePresentationSlides幻燈片幻燈片集合簡(jiǎn)報(bào)自選圖形對(duì)象層次圖集合對(duì)象單個(gè)對(duì)象ShapeText圖形對(duì)象文本設(shè)置GradientAttribute漸進(jìn)色屬性ConnectFormart連接線設(shè)置PatternAttributeFillAttributeShapeShapes圖案屬性自選圖形自選圖形集合ThreeDFormart填充屬性PictureAttribute圖片屬性PictureFormart三維格式TextureAttribute紋理屬性圖片格式PatternFormartLineFormart線型圖案格式線型對(duì)象格式第三章 總控本章將
23、為您介紹永中Office總控部分的宏及二次開發(fā)。本章內(nèi)容共分為以下6節(jié):3.1Application類和ApplicationFactory 類3.2文件管理器(Workbooks)3.3文件(Workbook)3.4打?。≒rint)3.5對(duì)話框(Dialogs)3.6菜單和工具條 (Commands)3.1 Application類和ApplicationFactory 類Application類是用作為單實(shí)例的API調(diào)用的總?cè)肟冢鳤pplicationFactory類是用作為多實(shí)例的API調(diào)用的總?cè)肟?。在多?shí)例情況下,從ApplicationFactory 總?cè)肟谔幙梢垣@得相當(dāng)于App
24、lication類的接口,即IApplication接口。下面是在多實(shí)例情況下的一個(gè)應(yīng)用示例的代碼:樣例3.1.1/新建一個(gè)永中Office實(shí)例,且主窗體不顯示,獲得打印機(jī)并打印工作表/在永中Office啟動(dòng)之前需要設(shè)置的參數(shù)AppParameters params = AppParameters.getInstance();/啟動(dòng)參數(shù)設(shè)置隱藏永中Office主窗口params.hideMainFrame();/通過ApplicationFactory 類獲得 IApplication 接口IApplication iapp = ApplicationFactory.createInstanc
25、e(params);/由IApplication 接口獲得一個(gè)添加的Workbook對(duì)象,Workbook book = iapp.getWorkbooks().addWorkbook(GlobalConstants.SPREADSHEET);/獲得當(dāng)前工作表Worksheet sheet = book.getWorksheets().getActiveWorksheet();/在工作表的一個(gè)區(qū)域B3:D6設(shè)值sheet.getRange(B3:D6).setValue(abc);/獲得工作表的打印機(jī)對(duì)象Print print = sheet.getPrint();/設(shè)置打印機(jī)的等待打印對(duì)話框
26、為FALSE,即隱藏等待打印對(duì)話框print.setWaitingDialogVisible(false);/打印工作表print.printOut();System.out.println(print finish!);/關(guān)閉永中Office實(shí)例iapp.exitSystem();上述示例在單實(shí)例情況下的代碼如下:樣例3.1.2/樣例:?jiǎn)?dòng)永中單Office實(shí)例,且主窗體不顯示,獲得打印機(jī)并答應(yīng)工作表/啟動(dòng)永中officeApplication.getApplicationInstance();Application.setMainFrameVisible(false);/由Applicat
27、ion 類獲得一個(gè)添加的Workbook對(duì)象,Workbook book = Application.getWorkbooks().addWorkbook(GlobalConstants.SPREADSHEET);/獲得當(dāng)前工作表Worksheet sheet = book.getWorksheets().getActiveWorksheet();/在工作表的一個(gè)區(qū)域B3:D6設(shè)值sheet.getRange(B3:D6).setValue(abc);/獲得工作表的打印機(jī)對(duì)象Print print = sheet.getPrint();/設(shè)置打印機(jī)的等待打印對(duì)話框?yàn)閒alse,即隱藏等待打印對(duì)
28、話框print.setWaitingDialogVisible(false);/打印工作表print.printOut();System.out.println(print finish!);/退出永中OfficeApplication.exitSystem();3.2 Application類和IApplication類Application類是一個(gè)靜態(tài)類,類中的API均可直接調(diào)用;而IApplication類需要通過ApplicationFactory獲得。Application類與單實(shí)例的永中Office應(yīng)用實(shí)例對(duì)應(yīng),IApplication類與多實(shí)例的永中Office應(yīng)用實(shí)例對(duì)應(yīng)。Ap
29、plication類和IApplication類在API方面的主要區(qū)別在于Application類中包含了初始化永中Office實(shí)例(單實(shí)例)的API,而在永中Office內(nèi)部功能API方面保持一致。由于Application類和IApplication類在永中Office內(nèi)部功能API方面保持一致,下面將以Application類為代表,詳細(xì)說(shuō)明其功能。注意:手冊(cè)中的Java示例大多用IApplication類做說(shuō)明,如需在單實(shí)例情況下運(yùn)行,請(qǐng)修改入口部分。IApplication類在永中Office內(nèi)部功能方面定義了對(duì)整個(gè)永中Office應(yīng)用程序進(jìn)行操作、控制、管理的方法。通過它可以獲得文
30、件管理器,窗口管理器,工具條管理器等等。該類的方法都是靜態(tài)方法,所以無(wú)需生成該類對(duì)象而直接通過類來(lái)調(diào)用其中方法。先看以下幾個(gè)關(guān)于Application類和IApplication類的代碼:樣例3.2.1_1/新建JFrame和永中office單實(shí)例,并把這實(shí)例放入JFrame容器中JFrame frame = new JFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/啟動(dòng)永中officeApplication.createInstance(frame.getContentPane();frame.add(Applica
31、tion.getInstance();frame.setSize(800, 600);frame.setVisible(true);與之對(duì)應(yīng)的多實(shí)例代碼樣例3.2.1_2/新建JFrame和永中office實(shí)例,并把這實(shí)例放入JFrame容器中JFrame frame = new JFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/永中Office初始參數(shù)AppParameters appParam = AppParameters.getInstance();/設(shè)置承載永中Office的容器appParam.setCon
32、tainer(frame.getContentPane();/創(chuàng)建永中OfficeApplicationFactory.createInstance(appParam);frame.setSize(800, 600);frame.setVisible(true);樣例3.2.2_1/在applet中啟動(dòng)永中office單實(shí)例public class SCreateOfficeInApplet extends JAppletpublic void start()/啟動(dòng)永中officeApplication.createInstance(getContentPane();/將永中Office添加到
33、Applet中g(shù)etContentPane().add(Center, Application.getInstance();樣例3.2.2_2/在applet中啟動(dòng)永中office實(shí)例public class MCreateOfficeInApplet extends JApplet public void start()/永中Office初始參數(shù) AppParameters appParams = AppParameters.getInstance();/設(shè)置承載永中Office的容器appParams.setContainer(getContentPane();/創(chuàng)建永中OfficeApp
34、licationFactory.createInstance(appParams);下面列舉了Application中啟動(dòng)永中office的相關(guān)方法:/在JApplet或者JFrame中調(diào)用,新建一個(gè)永中Office實(shí)例。public static void createInstance(Component component)/在JApplet程序中調(diào)用,返回一個(gè)永中Office的實(shí)例。public static Container getInstance()/在Application程序中調(diào)用,返回一個(gè)永中Office的實(shí)例。public static Container getAppli
35、cationInstance()通過Application或IApplication可以獲取Workbooks(文件管理器)、CommandBars(工具條管理器)、Windows(永中Office窗口對(duì)象)等,如同類層次圖顯示的那樣,所有的二次開發(fā)API的調(diào)用都要經(jīng)過Application或IApplication入口。Application或IApplication類也提供了一些獲取永中Office應(yīng)用程序相關(guān)信息的方法,如獲取版本號(hào),默認(rèn)存盤路徑,安裝路徑等。請(qǐng)看下面兩個(gè)樣例:樣例3.2.3/啟動(dòng)永中office應(yīng)用程序并新建一電子表格文件/永中Office初始參數(shù)AppParamete
36、rs appParam = AppParameters.getInstance();/創(chuàng)建永中Office實(shí)例IApplication iApp = ApplicationFactory.createInstance(appParam);/獲取文件管理器Workbooks books = iApp.getWorkbooks();/新建一電子表格文件books.addWorkbook(GlobalConstants.SPREADSHEET);樣例3.2.4/獲得永中Office安裝路徑/永中Office初始參數(shù)AppParameters appParam = AppParameters.getI
37、nstance();/創(chuàng)建永中Office實(shí)例IApplication iApp = ApplicationFactory.createInstance(appParam);/永中Office安裝路徑String installPath =iApp.getSystemPath(GlobalConstants.TPYE_EIO_INSTALL_PATH);System.out.println(永中Office安裝路徑是: + installPath);下面列舉了Application和IApplication中獲取一些對(duì)象的相關(guān)方法:/獲取永中Office文件管理器public static W
38、orkbooks getWorkbooks()/獲得菜單和工具條的管理器public static CommandBars getCommandBars()/返回永中Office軟件的版本號(hào)public static String getVersion()/獲取永中Office的安裝路徑public static String getSystemPath()/獲取永中Office文件的默認(rèn)存盤文件夾的路徑public static String getFileSavePath()Application和IApplication類還提供了一些設(shè)置永中office界面的方法,除了通過得到工具條管理
39、器來(lái)添加刪除工具條外,還有如顯示或隱藏任務(wù)面板,設(shè)置UI屬性等,通過Application和IApplication類還能設(shè)置永中office中的某些菜單項(xiàng)是否可用等。樣例3.2.5/啟動(dòng)永中office應(yīng)用程序,隱藏文件菜單/永中Office初始參數(shù)AppParameters appParam = AppParameters.getInstance();/設(shè)置不保存自定義動(dòng)作appParam.disableCustomizeSave();/創(chuàng)建永中Office實(shí)例IApplication iApp = ApplicationFactory.createInstance(appParam);/
40、獲得文件菜單CommandBar fileMenu = iApp.getCommandBars().getCommandBar(文件);/隱藏文件菜單fileMenu.setVisible(false);以下列舉了Application中其他一些設(shè)置office界面等的常用方法:/顯示或隱藏任務(wù)面板public static void setTaskPanelVisible(int paneID, boolean show)設(shè)置永中Office 的UI屬性public static void setUIStyle(int flags)/設(shè)置是否顯示編輯欄public static void s
41、etFormulaBarVisible(boolean show)/設(shè)置是否顯示狀態(tài)欄public static void setStatusBarVisible(boolean show)/設(shè)置永中Office菜單項(xiàng)可用或不可用public static void setActionEnable(int index, boolean enabled)/定位到某個(gè)應(yīng)用public static void gotoProduct(final int type)相對(duì)應(yīng)于以上這些設(shè)置方法,還有相應(yīng)的獲取屬性或者狀態(tài)的方法,如:/通過面板ID判斷面板是否顯示public static boolean
42、isTaskPaneVisible(int paneID)/是否顯示編輯欄public static boolean isFormulaBarVisible()/是否顯示狀態(tài)欄public static boolean isStatusBarVisible()/判定某個(gè)菜單項(xiàng)是否有效public static boolean isActionEnable(int index)Application(IApplication)類作為永中Office應(yīng)用示例的總?cè)肟冢δ茌^多,API的詳細(xì)功能描述請(qǐng)參照API說(shuō)明。以下是一個(gè)完整的代碼示例樣例3.2.6import application.AppP
43、arameters;import application.ApplicationFactory;import application.IApplication;import application.constants.ActionNameConstants;import application.constants.GlobalConstants;import application.workbooks.workbook.Shapes;public class MyOfficeprivate IApplication iApp; / 永中Office實(shí)例public MyOffice()/ 創(chuàng)建
44、永中Office實(shí)例iApp = ApplicationFactory.createInstance(AppParameters.getInstance();/ 添加文字處理應(yīng)用iApp.getWorkbooks().addWorkbook(GlobalConstants.WORDPROCESSOR);public void setVisible()/ 設(shè)置不顯示狀態(tài)欄iApp.setStatusBarVisible(false);/ 設(shè)置不顯示編輯欄iApp.setFormulaBarVisible(GlobalConstants.FORMULABAR_INVISIBLE);/ 設(shè)置隱藏導(dǎo)航
45、面板iApp.setTaskPanelVisible(GlobalConstants.CURRENT_PANE, false);/ 設(shè)置文件打印菜單項(xiàng)不可用iApp.setActionEnable(ActionNameConstants.FILE_PRINT, false);/ 在應(yīng)用中添加一藝術(shù)字Hello Applicationpublic void showHello()/ 獲得自選圖形集合Shapes shapes = iApp.getWorkbooks().getActiveWorkbook() .getActiveShapes();/ 添加藝術(shù)字shapes.addWordArt(
46、1, Hello Application, 宋體, 1, 24, 250, 180, 400, 320);public static void main(String args)MyOffice myOffice = new MyOffice();myOffice.setVisible();myOffice.showHello();3.3 文件管理器(Workbooks)application.Workbooks類對(duì)應(yīng)于文件管理器,通過它可以添加、獲取、保存文件等,因此,對(duì)文件進(jìn)行的二次開發(fā)一般都會(huì)通過Workbooks這個(gè)類,Workbooks還能進(jìn)行文件和byte數(shù)組的轉(zhuǎn)換,這種方式很好的
47、支持了文件在數(shù)據(jù)庫(kù)的上傳和下載。先看幾個(gè)對(duì)文件進(jìn)行操作的代碼樣例3.3.1/添加一個(gè)文字處理文件/ 創(chuàng)建永中Office實(shí)例IApplication iApp = ApplicationFactory.createInstance(AppParameters.getInstance();/ 獲得文件管理器Workbooks wbs = iApp.getWorkbooks();/ 添加文字處理應(yīng)用wbs.addWorkbook(GlobalConstants.WORDPROCESSOR);樣例3.3.2/打開一個(gè)文件/ 創(chuàng)建永中Office實(shí)例IApplication iApp = Applic
48、ationFactory.createInstance(AppParameters.getInstance();/ 獲取文件管理器Workbooks books = iApp.getWorkbooks();/ 通過管理器打開D盤下test.eio文件books.openWorkbook(D:/test.eio);/ 在控制臺(tái)輸出文件大小System.out.println(文件個(gè)數(shù)為 + books.size();以下列舉了在Workbooks類中添加,獲取,保存,關(guān)閉文件的常用方法:/新建一個(gè)文件public Workbook addWorkbook(int type)/新建一個(gè)自定義名字的
49、文件public Workbook addWorkbook(String bookName, int type)/打開一個(gè)文件public Workbook openWorkbook(final String fileName)/獲取當(dāng)前活動(dòng)文件public Workbook getActiveWorkbook()/根據(jù)文件名稱獲取文件對(duì)象public Workbook getWorkbook(String bookName)/關(guān)閉永中Office中的所有文件public void closeAll()/保存永中Office中的所有文件public void saveAll()Workbook
50、s對(duì)象中包涵了文件數(shù)據(jù)和byte數(shù)組轉(zhuǎn)換的API,先看下例:樣例3.3.2/ 把當(dāng)前文件復(fù)制成pdf類型的byte數(shù)組,然后利用其創(chuàng)建一pdf文件byte bytes = null;/ 創(chuàng)建永中Office實(shí)例IApplication iApp =ApplicationFactory.createInstance(AppParameters.getInstance();/ 獲取文件管理器Workbooks books = iApp.getWorkbooks();/ 獲取當(dāng)前文檔Workbook book = books.getActiveWorkbook();try/ 把此文件復(fù)制成pdf類型
51、的byte數(shù)組bytes = books.getWorkbookAsByteArray(book, FileConstants.TYPE_PDF);/ 創(chuàng)建文件并寫入數(shù)據(jù),最后關(guān)閉它File file = new File(D:/test.pdf);FileOutputStream fos = new FileOutputStream(file);fos.write(bytes);fos.flush();fos.close();catch (IOException e)e.printStackTrace();以下列舉了在Workbooks類中關(guān)于復(fù)制成byte數(shù)組的幾個(gè)常用方法:/讀取一個(gè)永中Office文件,在內(nèi)存中復(fù)制,將復(fù)制的永中Office文件以byte數(shù)組返回public byte getWorkbookAsByteA
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 全款轉(zhuǎn)讓房產(chǎn)合同范本
- 加班法務(wù)合同范本
- 公司入股合同范本文檔
- 仔豬購(gòu)銷糾紛合同范本
- 包裝插畫合同范本
- 農(nóng)村協(xié)議買房合同范本
- 2024年金山區(qū)衛(wèi)生健康事業(yè)單位招聘衛(wèi)生專業(yè)技術(shù)人員考試真題
- 2024年南丹縣丹融文化傳媒有限公司招聘筆試真題
- 農(nóng)村修水渠合同范本
- 2024年阜陽(yáng)市皖西北(阜南)糧食產(chǎn)業(yè)園有限公司招聘考試真題
- 注塑領(lǐng)班簡(jiǎn)歷樣板
- 骨骼肌-人體解剖學(xué)-運(yùn)動(dòng)系統(tǒng)
- 基于康耐視相機(jī)的視覺識(shí)別實(shí)驗(yàn)指導(dǎo)書
- 三年級(jí)書法下冊(cè)《第9課 斜鉤和臥鉤》教學(xué)設(shè)計(jì)
- 兒童財(cái)商養(yǎng)成教育講座PPT
- 大學(xué)學(xué)院學(xué)生獎(jiǎng)助資金及相關(guān)經(jīng)費(fèi)發(fā)放管理暫行辦法
- 2022蘇教版科學(xué)五年級(jí)下冊(cè)全冊(cè)優(yōu)質(zhì)教案教學(xué)設(shè)計(jì)
- 加油員的安全生產(chǎn)責(zé)任制
- 2023年R2移動(dòng)式壓力容器充裝操作證考試題及答案(完整版)
- 九年級(jí)物理實(shí)驗(yàn)記錄單
- 2022年湖北省高中學(xué)業(yè)水平考試真題-音樂學(xué)科
評(píng)論
0/150
提交評(píng)論