CMSで一覧画面の内容をEXCELエクスポートする方法を紹介致します。CMSでは標準で提供しているインポート/エクスポート機能がある。※ただし、CSVファイルのみを提供している。※EXCELファイルは標準では提供していない。インポート/エクスポート機能の公式ドキュメントはこちらです。CMSで作成した一覧画面の内容をEXCELエクスポートしたい。※一覧画面にはソート機能、検索機能、フィルター機能がある。※一覧画面でソート、検索、フィルターされた状態をそのままエクスポートしたい。実装の流れ1.一覧画面の実装まずは一覧画面を実装する必要があります。CMSの公式ドキュメントに詳しく載っているので参照してください。ソート、検索、フィルターの内容も載っています。https://octobercms.com/docs/backend/lists2.EXCELエクスポート用にプラグインをインストール今回やりたいことはEXCELエクスポートなので、対応するプラグインをインストールします。ここも公式ドキュメントにインストール手順などが詳しく載っているので参照してください。https://octobercms.com/plugin/vdomah-excel3.EXCELエクスポート機能の実装ここからEXCELエクスポートの実装を進めていきます。以下2点を実施します。・「1.一覧画面の実装」で作成したコントローラにEXCELエクスポート処理を追加こちらのサイトを参考に実装しました。$this->query;}}上記の実装のポイントは引数「$query」を持つコンストラクタを用意しているところです。「$query」には一覧画面で実行したクエリが渡ってくるイメージです。TestExport($query))->download('テスト.xlsx');}}上記の実装のポイントは一覧画面で実行したクエリを取得し、先ほどのエクスポート用クラスのコンストラクタ引数に渡しているところです。※ソート、検索、フィルターされた状態のクエリです。今回の実装で一番つまずいたのは実はここです。CMS)が請け負っている部分で処理の詳細があまり見えず、一覧画面で実行したクエリの取得方法をネットで探してもあまり参考になる情報が見つかりませんでした。CMSでは標準で提供しているインポート/エクスポート機能」があり、公式ドキュメントを読み進めたところ、一覧表示のクエリをそのままエクスポートするオプション(useList)があるようだったのでその部分の処理を追ってみることにしました。追ってみたところ、一覧画面で実行されたクエリを取得する処理があったので、その処理を参考に実装しました。一覧画面でソート、検索、フィルターした状態でEXCELエクスポートを実行したところ、EXCEL側も一覧画面と連動した状態でエクスポートされました。おわりに一覧画面とEXCELエクスポートで内容を連動させたい要件はわりとよくある機能だと思います。CMSでは少し工夫が必要でしたが、今回の対応により一覧画面で実行したクエリをEXCELエクスポートでも使いまわせるようになりました。今後、一覧画面に追加対応があった際にEXCELエクスポート機能への対応漏れや実装の手間が軽減されると思います。システム開発のご相談はこちらからお気軽にお問合せください。コメントをキャンセルメールアドレスが公開されることはありません。/技術コンサルティング、といった総合的な開発ソリューションを展開しています。