You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Apache POI 3.9在Excel页眉中添加图片?

Apache POI 3.9实现Excel页眉添加图片的解决方案

Apache POI 3.9可以实现Excel页眉添加图片的功能,但你的代码存在逻辑错误,导致图片无法显示。

问题分析

你当前的代码是将图片添加到工作表的正文绘图区域(DrawingPatriarch),但页眉的&[Picture]指令需要图片被专门关联到页眉区域,而非普通的工作表图片,因此无法识别显示。

修正后的代码

针对HSSF(.xls格式),你需要将图片直接设置为页眉关联图片,而非创建工作表图片:

byte[] logo;
int logoId;
try {
    logo = Files.readAllBytes(Paths.get("C:/Users/xiia7/OneDrive/Documents/assets/images/logo.png"));
    logoId = workbook.addPicture(logo, Workbook.PICTURE_TYPE_PNG);
    // 将图片关联到页眉中间区域
    ((HSSFSheet) sheet0).setHeaderPicture(logoId, HSSFHeader.CENTER);
} catch (Exception e) {
    e.printStackTrace();
}

Header header = sheet0.getHeader();
header.setCenter(HSSFHeader.font("Times New Roman", "Bold") + HSSFHeader.fontSize((short) 8) + "&[Picture]");

关键说明

  1. 移除了创建Drawing和Picture的代码,这部分是用于给工作表正文添加图片,和页眉无关。
  2. 使用HSSFSheet.setHeaderPicture方法,将图片ID绑定到页眉的指定区域(左/中/右,对应HSSFHeader.LEFT/CENTER/RIGHT)。
  3. POI 3.9仅对HSSF(.xls)格式的页眉图片支持完善,若你处理的是XSSF(.xlsx)格式,页眉图片功能需要升级到POI 3.14及以上版本才能正常使用。

内容的提问来源于stack exchange,提问作者Shabrina Nurdiani S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 06:41:01