2024年5月1日
PhpSpreadsheet tips #5
・ EXCELファイルを開いて保存しなおした時に消えるもの
テンプレートとして用意したEXCELファイルを開いて、加筆して、保存する。
ただそれだけで設定していたものが消えたり、設定値が変わったりするものがあるので、いくつか試した結果を整理しておく。
細かいパターンや組み合わせのバリエーションまで確認出来ているわけではないので、参考情報程度のメモとして。
使用環境
・ PHP 8.2.9
・ phpoffice/phpspreadsheet version 2.0.0 (Composerでインストール済み)
検証に使うプログラム
<?php
require '../vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Reader\Xlsx as XlsxReader;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx as XlsxWriter;
// 元になるファイルをスプレッドシートに読み込む
$reader = new XlsxReader();
$spreadsheet = $reader->load( './template.xlsx' );
// xlsx形式で保存する
$writer = new XlsxWriter( $spreadsheet );
$writer->save( './output.xlsx' );
// スプレッドシートを閉じてメモリを解放
$spreadsheet->disconnectWorksheets();
unset( $spreadsheet );
PHPEXCELファイルを開いてそれを別名保存する。
それだけの動作で元のEXCELファイルから維持されるもの、消えるもの、を確認する。
試した結果
| 項目 | 結果 | 補足事項 | |
|---|---|---|---|
| 画像 | 貼っただけ | ○ | |
| 画像にリンクをセット | ○ | ||
| 画像にマクロをセット | × | ファイルが壊れてEXCELで正常に開けない | |
| 図形 | 貼っただけ | △ / × | ・ 画像やアイコンがあると消える ・ 線幅を指定しておかないと幅が変わる |
| 図形にリンクをセット | × | 図形ごと消える | |
| 図形にマクロをセット | × | ファイルが壊れてEXCELで正常に開けない | |
| アイコン | 貼っただけ | ○ | |
| アイコンにリンクをセット | ○ | ||
| アイコンにマクロをセット | × | セットした内容が消える | |
| 3Dモデル | × | 消える | |
| SmartArt | × | 消える | |
| グラフ | × | 消える | |
| 条件付き書式 | ○ | ||
| ピポットテーブル | × | セルに値があるだけになる | |
| セルのコメント | ○ | ||
| 名前定義 | ○ | ||
| データの入力規則 | ○ | ||
| 行/列のグループ化 | ○ | ||
| フィルター | ○ | ||
| ウィンドウ枠の固定 | ○ | ||
| 分割 | ○ | ||
| 改ページ | ○ | ||
| マクロ | 標準モジュール | ○ | |
| ユーザーフォーム | ○ | ||
| Sheet毎のマクロ | ○ | ||
| Book毎のマクロ | ○ | ||
※マクロは .xlsm ファイルを開いて別名保存する形で検証。
図形が安定しないのが帳票作る際に悩ましい。
Version2になって使えるかと勝手な期待をしたが、使えるような、使えないような、不安定な様子。
画像やアイコンに干渉されているようにも見えるので、そこが解消されたら使えるようになりそう。
今後のバージョンアップに期待。