本文将介绍通过spire.doc for java 添加表格到word文本框并格式化表格的方法。添加图片、文本到文本框,可参考这篇文章。
import com.spire.doc.*;
import com.spire.doc.documents.*;
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, 100);
//设置文本框的相对位置
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);
//声明数组内容
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("addtabletotextbox.docx", fileformat.docx_2013);
}
}
表格添加效果: