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

Laravel项目PHPExcel导出带图表Excel,本地正常Hostinger无图表问题

看起来你遇到了PHPExcel在Hostinger服务器上导出图表失效的问题,本地正常但服务器不行,这种情况基本都是环境配置或者依赖的锅,我给你几个具体的排查和解决步骤:

1. 检查服务器GD库扩展是否启用

PHPExcel生成图表依赖GD库来渲染图像,Hostinger的PHP环境可能默认没开启这个扩展:

  • 登录Hostinger控制面板,进入Advanced -> PHP Configuration
  • 在扩展列表里找到gd,确认它是勾选状态
  • 如果没开启,勾选后保存,重启PHP服务(一般控制面板会自动重启)
2. 确保临时目录有读写权限

PHPExcel生成图表时需要在临时目录写入缓存文件,服务器上的权限可能不够:

  • 在Laravel项目的storage/framework下创建temp目录(如果不存在)
  • 设置该目录权限为755或775(保证PHP进程能读写)
  • 也可以在代码里手动指定临时目录,在生成图表前添加:
    \PHPExcel_Settings::setTempDir(storage_path('framework/temp'));
    
3. 确认导出代码开启了图表支持

别漏了关键的setIncludeCharts(true)调用,很多人会忽略这个:

  • 检查你的导出代码,确保创建Writer时开启了图表包含:
    $writer = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    $writer->setIncludeCharts(true); // 必须开启这个才能导出图表
    $writer->save($filePath);
    
  • 另外建议导出.xlsx格式(Excel2007),旧的.xls格式对图表支持有限
4. 检查PHP版本兼容性

PHPExcel(尤其是旧版本1.8.x)对高版本PHP兼容性不好,Hostinger默认可能用了PHP 8.x:

  • 进入Hostinger的PHP设置,切换到PHP 7.4版本(这个版本和PHPExcel 1.8.x兼容性最佳)
  • 如果必须用高版本PHP,建议迁移到phpoffice/phpspreadsheet(PHPExcel的官方替代项目,支持PHP 7.1+)
5. 验证图表数据引用的正确性

有时候服务器上的工作表名称或单元格范围可能因为编码问题出错:

  • 确保你的工作表名称Worksheetdata没有特殊字符,代码里的拼写完全正确
  • 导出后打开Excel文件,先确认数据是完整的,然后手动插入图表测试,如果手动能显示,说明是代码里的引用或配置问题

内容的提问来源于stack exchange,提问作者Iron-prime

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:12:25