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

PHP Spreadsheet向.xlsx文件页眉插入JPEG图片不显示问题求助

问题排查与解决方法

核心原因(90%以上该场景问题都是这个原因)

你只完成了页眉图片对象的注册,没有在页眉配置中添加图片渲染的特殊占位符,PHP Spreadsheet要求页眉/页脚中必须使用&G标记来指代插入的图片,否则不会触发渲染。

修正后完整代码

// Create a New Excel
$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();    
$activeSheet = $spreadsheet->getActiveSheet();

$drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\HeaderFooterDrawing();
$drawing->setName('PhpSpreadsheet logo');
// 转为绝对路径,避免相对路径解析异常
$drawing->setPath(realpath('app/files/images/example.jpeg'));
$drawing->setHeight(36);
$activeSheet->getHeaderFooter()->addImage($drawing, \PhpOffice\PhpSpreadsheet\Worksheet\HeaderFooter::IMAGE_HEADER_LEFT);

// 关键配置:设置奇数页页眉,&L表示左对齐,&G表示插入对应位置的图片
$activeSheet->getHeaderFooter()->setOddHeader('&L&G');
// 若需要偶数页也显示图片,添加以下配置
// $activeSheet->getHeaderFooter()->setEvenHeader('&L&G');

// 调整页面边距,避免图片高度超过页眉边距被遮挡,单位为英寸
$activeSheet->getPageMargins()->setTop(1.5);
$activeSheet->getPageMargins()->setHeader(1);

其他兼容排查点

  • 生成文件时必须使用\PhpOffice\PhpSpreadsheet\Writer\Xlsx写入器,老版Xls格式对页眉图片的支持存在缺陷
  • 打开生成的文件优先使用微软Excel验证,部分第三方办公软件(如低版本WPS)可能无法正常渲染页眉图片
  • 确认图片格式为标准JPEG,部分编码特殊的JPEG图片可能无法被页眉渲染逻辑识别

内容的提问来源于stack exchange,提问作者d_codesys

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:18:03