Java 新增Word文字框
阿新 • • 發佈:2019-09-10
在Word中,文字框是指一種可移動、可調節大小的文字或圖形容器。我們可以向文字框中新增文字、圖片、表格等物件,下面,將通過Java程式設計來實現新增以上物件到Word文字框。
使用工具:Free Spire.Doc for Java (免費版)
Jar檔案獲取及匯入:
方法1:通過官網下載獲取jar包。下載後,解壓檔案,並將lib資料夾下的Spire.Doc.jar檔案匯入Java程式。(如下圖)
方法2:通過maven倉庫安裝匯入。
Java程式碼示例
import com.spire.doc.*; import com.spire.doc.documents.*; import com.spire.doc.fields.DocPicture; import com.spire.doc.fields.TextBox; import com.spire.doc.fields.TextRange; import java.awt.*; public class AddTextbox { public static void main(String[]args){ //建立文件 Document doc = new Document(); //新增指定大小的文字框 TextBox tb = doc.addSection().addParagraph().appendTextBox(380, 275); //設定文字環繞方式 tb.getFormat().setTextWrappingStyle(TextWrappingStyle.Square); //設定文字框的相對位置 tb.getFormat().setHorizontalOrigin(HorizontalOrigin.Left_Margin_Area); tb.getFormat().setHorizontalPosition(120f); tb.getFormat().setVerticalOrigin(VerticalOrigin.Page); tb.getFormat().setVerticalPosition(100f); //設定文字框邊框樣式 tb.getFormat().setLineStyle(TextBoxLineStyle.Thin_Thick); tb.getFormat().setLineColor(Color.gray); //插入圖片到文字框 Paragraph para = tb.getBody().addParagraph(); DocPicture picture = para.appendPicture("5G.png"); picture.setHeight(120f); picture.setWidth(180f); para.getFormat().setHorizontalAlignment(HorizontalAlignment.Center); para.getFormat().setAfterSpacing(13f); //插入文字到文字框 para = tb.getBody().addParagraph(); TextRange textRange = para.appendText("中美貿易爭端,又稱中美貿易戰,也叫中美貿易摩擦,是中美經濟關係中的重要問題。 " + "貿易爭端主要發生在兩個方面:一是中國具有比較優勢的出口領域;" + "二是中國沒有優勢的進口和技術知識領域。"); textRange.getCharacterFormat().setFontName("楷體"); textRange.getCharacterFormat().setFontSize(11f); para.getFormat().setHorizontalAlignment(HorizontalAlignment.Center); //新增表格到文字框 //宣告陣列內容 String[][] data = new String[][]{ new String[]{"中美進出口差額"}, new String[]{"國家", "年份", "出口額(美元)", "進口額(美元)"}, new String[]{"中國", "2017", "125468", "101109"}, new String[]{"美國", "2017", "86452", "124298"}, }; //新增表格 Table table = tb.getBody().addTable(); //指定表格行數、列數 table.resetCells(4,4); //將陣列內容填充到表格 for (int i = 0; i < data.length; i++) { TableRow dataRow = table.getRows().get(i); dataRow.getCells().get(i).setWidth(70); dataRow.setHeight(22); dataRow.setHeightType(TableRowHeightType.Exactly); for (int j = 0; j < data[i].length; j++) { dataRow.getCells().get(j).getCellFormat().setVerticalAlignment(VerticalAlignment.Middle); TextRange range2 = dataRow.getCells().get(j).addParagraph().appendText(data[i][j]); range2.getCharacterFormat().setFontName("楷體"); range2.getCharacterFormat().setFontSize(11f); range2.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Center); range2.getCharacterFormat().setBold(true); } } TableRow row = table.getRows().get(1); for (int z = 0; z < row.getCells().getCount(); z++) { row.getCells().get(z).getCellFormat().setBackColor(new Color(176,224,238)); } //橫向合併單元格 table.applyHorizontalMerge(0,0,3); //應用表格樣式 table.applyStyle(DefaultTableStyle.Table_Grid_5); //儲存文件 doc.saveToFile("AddTextbox.docx", FileFormat.Docx_2013); doc.dispose(); } }
文字框新增效果:
(本文完)
&n