PageOffice 組件提供的接口和對象都簡潔高效,開發效率很高。不只支持從一個空白的Word生成文件,還能夠對現有的word模板作數據填充,還能夠把多個word模板插入到一個word模板中不一樣的位置來組合生成文件,好比作一個試卷生成系統,甚至還能夠插入圖片和Excel文件到word模板中的指定位置去生成一個複合型的文檔報表,功能異常強大。下面列舉幾個生成文件的效果代碼:編程
WordDocument doc = new WordDocument(); //設置內容標題 //建立DataRegion對象,PO_title爲自動添加的書籤名稱,書籤名稱需以「PO_」爲前綴,切書籤名稱不能重複 //三個參數分別爲要新插入書籤的名稱、新書籤的插入位置、相關聯的書籤名稱(「[home]」表明Word文檔的頁首) DataRegion title = doc.createDataRegion("PO_title", DataRegionInsertType.After, "[home]"); //給DataRegion對象賦值 title.setValue("JAVA中編程實例\n"); //設置字體:粗細、大小、字體名稱、是不是斜體 title.getFont().setBold(true); title.getFont().setSize(20); title.getFont().setName("黑體"); title.getFont().setItalic(false); //定義段落對象 ParagraphFormat titlePara = title.getParagraphFormat(); //設置段落對齊方式 titlePara.setAlignment(WdParagraphAlignment.wdAlignParagraphCenter); //設置段落行間距 titlePara.setLineSpacingRule(WdLineSpacing.wdLineSpaceMultiple); //設置內容 //第一段 //建立DataRegion對象,PO_body爲自動添加的書籤名稱 DataRegion body = doc.createDataRegion("PO_body", DataRegionInsertType.After, "PO_title"); //設置字體:粗細、是不是斜體、大小、字體名稱、字體顏色 body.getFont().setBold(true); body.getFont().setItalic(true); body.getFont().setSize(10); //設置中文字體名稱 body.getFont().setName("楷體"); //設置英文字體名稱 body.getFont().setNameAscii("Times New Roman"); body.getFont().setColor(Color.red); //給DataRegion對象賦值 body.setValue("首先,我向你們介紹一下套接字的概念。\n"); //建立ParagraphFormat對象 ParagraphFormat bodyPara = body.getParagraphFormat(); //設置段落的行間距、對齊方式、首行縮進 bodyPara.setLineSpacingRule(WdLineSpacing.wdLineSpaceAtLeast); bodyPara.setAlignment(WdParagraphAlignment.wdAlignParagraphLeft); bodyPara.setFirstLineIndent(21);
WordDocument doc = new WordDocument(); //插入圖片 // PO_body3是word模板中已存在的一個書籤 DataRegion body4 = doc.createDataRegion("PO_body4", DataRegionInsertType.After, "PO_body3"); body4.setValue("[image]doc/logo.png[/image]"); //嵌入其餘Word文件 //body4.Value = "[word]doc/1.doc[/word]"; //嵌入其餘Excel文件 //body4.Value = "[excel]doc/1.xls[/excel]"; ParagraphFormat bodyPara4 = body4.getParagraphFormat(); bodyPara4.setAlignment(WdParagraphAlignment.wdAlignParagraphCenter);
WordDocument doc = new WordDocument(); //打開數據區域 DataRegion dataRegion = doc.openDataRegion("PO_regTable"); //打開table,openTable(index)方法中的index表明Word文檔中table位置的索引,從1開始 Table table = dataRegion.openTable(1); //給table中的單元格賦值, openCellRC(int,int)中的參數分別表明第幾行、第幾列,從1開始 table.openCellRC(3, 1).setValue("A公司"); table.openCellRC(3, 2).setValue("開發部"); table.openCellRC(3, 3).setValue("李清"); //插入一行,insertRowAfter方法中的參數表明第幾行,從1開始 table.insertRowAfter(3); table.openCellRC(4, 1).setValue("B公司"); table.openCellRC(4, 2).setValue("銷售部"); table.openCellRC(4, 3).setValue("張三");
WordDocument doc =new WordDocument(); //添加水印 ,設置水印的內容 doc.getWaterMark().setText("北京某某公司");
優勢有如下幾點:不限制於Windows平臺;接口和對象的設計就是針對Office文件生成專門優化設計的,代碼寫起來比較舒服可讀性強;編程的工做量更小,若是開發中也利用了Word模板,那開發量能夠更低;生成的文件是地地道道的Word格式,生成的文件效果比較完美;也不須要像POI那樣必須對doc和docx格式分別寫代碼;最後一點:服務器端不須要安裝Office,不使用服務器端資源,因此不須要處理服務器端文件生成時的併發問題,也就是不少用戶同時訪問系統生成文件時服務器的壓力問題。請注意這點,採用這個方案的話,文件是在客戶端生成的,調用的是客戶端的資源,徹底符合分佈式計算的思想。服務器