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になって使えるかと勝手な期待をしたが、使えるような、使えないような、不安定な様子。
画像やアイコンに干渉されているようにも見えるので、そこが解消されたら使えるようになりそう。
今後のバージョンアップに期待。