如何用Java的HSSFFooter在Excel页脚创建多列签名区域?
问题原因
你的代码中多次调用setCenter、setLeft等方法,每次调用都会完全替换对应区域的原有内容,而不是追加。比如先设置中心为标题,之后又设置中心为日期,标题就被覆盖了,所以只能看到最后一次设置的内容。
可行方案
HSSFFooter支持在左、中、右三个独立区域内通过**换行符\n**实现多行内容。只需要为每个区域一次性构建好包含换行的字符串,再调用一次对应的set方法即可,这样每个区域内会显示多行,三个区域形成三列的签名布局。
代码示例
HSSFFooter footer = sheet0.getFooter(); // 格式化当前日期 String now = new SimpleDateFormat("dd/MM/yyyy").format(new Date()); counter += 1; // 构建左区域内容:日期 + 签名行 String leftContent = now + "\n签名:_________"; // 构建中区域内容:标题 + 签名行 String centerContent = "KOLOM PROSES PENJURNALAN" + "\n签名:_________"; // 构建右区域内容:编号 + 签名行 String rightContent = "编号:" + counter + "\n签名:_________"; // 一次性设置三个区域的内容,避免覆盖 footer.setLeft(leftContent); footer.setCenter(centerContent); footer.setRight(rightContent);
说明
- Excel页脚的左、中、右三个区域是水平分隔的,每个区域内的
\n会触发换行,形成多行布局 - 不要多次调用同一区域的set方法,否则会覆盖之前的内容,务必一次性传入完整的多行字符串
- 签名下划线可以根据需求调整样式,比如用更多的
_或者其他符号
内容的提问来源于stack exchange,提问作者Shabrina Nurdiani S
相关产品推荐
相关产品推荐

