質問: PHPExcel_IOFactory::createWriter($xl, 'Excel2007'); $writer->save($dest); // メモリ解放 $xl->disconnectWorksheets(); unset($xl); return $savefile; } ``` ### 試したこと システムで使用しているテンプレートファイルが複数シートで構成されていて複雑なので 簡単な下図のような矢印図形だけが含まれているテンプレートファイルの ダウンロードを試してみましたが図形が消えてしまうのを確認しました。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/e26cb142586a56e233e172216aa399e5.png)
回答: 図形の保持や挿入にPHPExcelが対応していないようなので 背景を透過処理した矢印画像を作成してプログラムで画像を 貼り付けることで対応しようと思います。 一応画像の貼り付けプログラムと参考リンクを載せておきます 参考リンク:PHPExcelを使ってExcelシートに画像を貼りつけてみた ``` //↓画像の挿入処理 $objDrawing = new PHPExcel_Worksheet_Drawing(); $objDrawing->setPath('');///貼り付ける画像のパスを指定 $objDrawing->setWidth(51);////画像の幅を指定 $objDrawing->setHeight(54);////画像の高さを指定 ///画像のプロパティを見たときに表示される情報を設定 $objDrawing->setName('Arrow');////ファイル名 $objDrawing->setDescription('Arrow');////画像の概要 $objDrawing->setCoordinates('P15');///位置(セル座標) $objDrawing->setOffsetX(50);////横方向へ何ピクセルずらすかを指定 $objDrawing->setOffsetY(10);////縦方向へ何ピクセルずらすかを指定 //$objDrawing->setRotation(25);//回転の角度 $objDrawing->getShadow()->setVisible(false);////ドロップシャドウをつけるかどうか。 ///PHPExcelオブジェクトに貼り込み $objDrawing->setWorksheet($xl->getActiveSheet()); ```