有人知道怎么用poi给word页眉加入表格吗
试了下免费版Spire.Doc for Java(https://www.e-iceblue.cn/Downloads/Free-Spire-PDF-JAVA.html),可以,页眉中添加图片、文字、表格都行:
参考代码:
import com.spire.doc.*;
import com.spire.doc.documents.DefaultTableStyle;
import com.spire.doc.documents.HorizontalAlignment;
import com.spire.doc.documents.TableRowHeightType;
import com.spire.doc.documents.VerticalAlignment;
import com.spire.doc.fields.TextRange;
public class AddTableToHeader {
public static void main(String[]args){
//加载需要添加页眉页脚的文档
Document doc= new Document("test.docx");
Section sec = doc.getSections().get(0);
//调用方法添加页眉页脚
AddHeaderFooter(sec);
//保存文档
doc.saveToFile("AddTableToHeader.docx");
}
//自定义方法来添加图片、文字页眉及页码
private static void AddHeaderFooter(Section sec){
HeaderFooter header = sec.getHeadersFooters().getHeader();
//添加表格到页眉
Table table = header.addTable();
table.resetCells(2,2);//指定表格行数、列数
table.applyStyle(DefaultTableStyle.Light_Grid);//设置表格样式
//声明表格数组内容
String[][] data ={
new String[]{"编号","姓名"},
new String[]{"1","Lily"},
};
//填充数组内容到表格
for (int i = 0; i < data.length; i++) {
TableRow dataRow = table.getRows().get(i);
dataRow.getCells().get(i).setWidth(25);
dataRow.setHeight(20);
dataRow.setHeightType(TableRowHeightType.Exactly);
for (int j = 0; j < data[i].length; j++) {
dataRow.getCells().get(j).getCellFormat().setVerticalAlignment(VerticalAlignment.Middle);
TextRange range = dataRow.getCells().get(j).addParagraph().appendText(data[i][j]);
range.getCharacterFormat().setFontName("楷体");
range.getCharacterFormat().setFontSize(11f);
range.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
}
}
}
}
效果图: