在这里我们接着上面的文章,讲解一下poi创建文档注释,产生页眉页脚和批注
2.1.3创建文档摘要信息
这里只是抽取了关键代码,这个是给文件设置一些摘要信息
HSSFWorkbook wb = new HSSFWorkbook();// 新建一个工作簿
wb.createInformationProperties();//创建文档信息
DocumentSummaryInformation dsi= wb.getDocumentSummaryInformation();//摘要信息
dsi.setCategory("类别:Excel文件");//类别
dsi.setManager("管理者:花花");//管理者
dsi.setCompany("公司:zking");//公司
SummaryInformation si = wb.getSummaryInformation();//摘要信息
si.setSubject("主题:--");//主题
si.setTitle("标题:测试文档");//标题
si.setAuthor("作者:花花");//作者
si.setComments("备注:POI测试文档");//备注
效果为:
2.1.4创建表格批注信息
HSSFWorkbook wb = new HSSFWorkbook();
FileOutputStream fout = new FileOutputStream("E:\\Demo\\poi.xls");
HSSFSheet sheet = wb.createSheet("工作表名");// 创建工作表(Sheet页)
HSSFPatriarch patr = sheet.createDrawingPatriarch();
HSSFClientAnchor anchor = patr.createAnchor(0, 0, 0, 0, 5, 1, 8, 3);// 创建批注位置
HSSFComment comment = patr.createCellComment(anchor);// 创建批注
comment.setString(new HSSFRichTextString("这是一个批注段落!"));// 设置批注内容
comment.setAuthor("花花");// 设置批注作者
comment.setVisible(true);// 设置批注默认显示
HSSFCell cell = sheet.createRow(2).createCell(1);
cell.setCellValue("测试");
cell.setCellComment(comment);// 把批注赋值给单元格
wb.write(fout);
创建批注位置HSSFPatriarch.createAnchor(dx1, dy1, dx2, dy2, col1, row1, col2, row2)方法参数说明:
- dx1 第1个单元格中x轴的偏移量
- dy1 第1个单元格中y轴的偏移量
- dx2 第2个单元格中x轴的偏移量
- dy2 第2个单元格中y轴的偏移量
- col1 第1个单元格的列号
- row1 第1个单元格的行号
- col2 第2个单元格的列号
- row2 第2个单元格的行号
也就是批注出现的位置:
2.1.5 创建页眉和页脚
HSSFWorkbook wb = new HSSFWorkbook();
FileOutputStream fout = new FileOutputStream("E:\\Demo\\poi.xls");
HSSFSheet sheet = wb.createSheet("Test");// 创建工作表(Sheet)
HSSFHeader header =sheet.getHeader();//得到页眉
header.setLeft("页眉左边");
header.setRight("页眉右边");
header.setCenter("页眉中间");
String tab = HSSFHeader.tab();//表名
System.out.println(tab);
HSSFFooter footer =sheet.getFooter();//得到页脚
footer.setLeft("页脚左边");
footer.setRight("页脚右边");
footer.setCenter("页脚中间");
wb.write(fout);
fout.close();
也可以使用Office自带的标签定义,你可以通过HSSFHeader或HSSFFooter访问到它们,都是静态属性,列表如下:
- HSSFHeader.tab &A 表名
- HSSFHeader.file &F 文件名
- HSSFHeader.startBold &B 粗体开始
- HSSFHeader.endBold &B 粗体结束
- HSSFHeader.startUnderline &U 下划线开始
- HSSFHeader.endUnderline &U 下划线结束
- HSSFHeader.startDoubleUnderline &E 双下划线开始
- HSSFHeader.endDoubleUnderline &E 双下划线结束
- HSSFHeader.time &T 时间
- HSSFHeader.date &D 日期
- HSSFHeader.numPages &N 总页面数
- HSSFHeader.page &P 当前页号