2019年6月21日PhpSpreadsheetでExcelを操作する全26実例!さてさて、ウェブ開発の分野は特に変化のスピードが速い業界ですので、少し前まで使っていた技術がたった2、3年で古くなってしまうことも結構ザラにあったりします。そのため普段から新しい情報は常にチェックするようにしていますが、それでも全てをカバーすることは難しいですよね。今回紹介する「PhpSpreadsheet」もそのひとつで、このパッケージは少し前まではPhpExcelという名前で公開されていました。PhpExcelは2017年に非推奨となり、現在はPhpSpreadsheetとしてリニューアルされています。(公式のGitHubによると2015年にリリースされて2017年に非推奨になっています。2年だったんですね・・・😅)ということで、今回はPHPでExcelを作成や読み込みなどができるPhpSpreadsheetの使い方を紹介したいと思います。最後に今回実際に使ったソースコードをダウンロードできます!ぜひ皆さんのお役に立てると嬉しいです。合わせて読みたいパッケージをインストールする以下のコマンドでパッケージをインストールしましょう。私の環境はLaravelですが、PhpSpreadsheetはPHP全般で利用できます。通してセルなどを操作します。\PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);$writer->save('/PATH/TO/YOUR/PROJECT/test.xlsx');セルの入力セルに文字や数字を入力するには、setCellValue()を使います。setCellValue()を使った場合、自動的に書式が決定されます。書式を明確に決定したい場合は、次のsetCellValueExplicit()を使ってください。書式を指定してセルに入力する例えば、「数字なんだけど文字列としてセルに入力したい」という場合です。その場合、setCellValueExplicit()を使います。\PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING);データタイプは主に他にも以下のようなものがあります。「元の郵便番号データは数字だけなんだけど、ハイフンをいれたい」という場合です。000-0000の部分がフォーマットになります。日時として入力セルに日時を入力したい場合は、以下のように表示フォーマットとDate::PHPToExcelを利用して実装します。$datetime);一気に入力もちろん一個ずつセルにデータ入力してもいいですが、もしデータが大量にある場合は効率よく実行したいものです。そんな場合はfromArray()で一気にデータを追加するといいでしょう。この場合A3に「テスト1-1」が入力され、そこから右方向と下方向のセルにデータ入力されることになります。式の入力エクセルに用意されている様々な式を入力したい場合です。次の例では、2つのセルの文字を結合して表示しています。B1)');セルの結合2つのセルを結合する場合です。以下の例では、A9とC9を結合してひとつのセルにしています。'結合されたセル');改ページ改ページを設定したい場合です。選択肢を直接指定する場合は次のようになります。setFomula1()内のダブルクォートがないとエラーが発生するので忘れないように気をつけてください。他のセルを参照して選択肢を指定する方法です。$validation);オートフィルタオートフィルタを設定したい場合です。'選択肢(3)');$sheet->setAutoFilter('A20:A20');枠線の表示、非表示Excelではデフォルトでうっすらと枠線が表示されていますが、これを非表示にするには以下のようにします。$sheet->setShowGridlines(false);文字の色を指定する例えば、文字の色を赤にしたい場合です。指定する色はARGBであることに注意してください。背景色を指定する例えば、セルの背景を赤にしたい場合です。->setARGB('FFFF0000');枠線を指定するセルに枠線をつけたい場合です。以下の例では、Excelファイルを読み込んで全てのデータを配列に格納しています。現在のワークシートからセルのデータを取得したい場合の例になります。場合、結合した後の文字列を取得することになります。日付などの表示フォーマットを指定していた場合、そのフォーマットに従ってデータを取得することができます。範囲を指定して配列としてデータ取得する場合です。$sheet->rangeToArray('A3:C5');print_r($data);ソースコードをダウンロードする今回実際に作成したソースコードを以下からダウンロードすることができます。保存するパス、読み込むExcelファイルはご自身で設定する必要があります。(そのままだとおそらくエラーが表示されます)PhpSpreadsheetでExcelを操作するおわりに今回はじめてPhpSpreadsheetを使ったわけですけど、私の記憶が正しければ前バージョンのPhpExcelよりコードがとても書きやすくなっているイメージです。直感的にコードの理解もしやすいんじゃないでしょうか。Spreadsheetでも表示してみましたがこれも問題もなく表示されました。こっちの方の技術も進化しているということですね。いうことで、皆さんのウェブサイトにもExcel作成機能をつけてみてはいかがでしょうか。開発スキルプログラム開発は15年以上。Laravel、Vue.jsをメインとしてPython(機械学習)やElectronの開発もお引き受けしております。過去2度カナダのバンクーバーに滞在していました。開発状況によりましては開発をお待ちいただく可能性がございますが、いつでもご相談は受けさせていただいております。お気軽にご連絡ください!お問い合わせフォーム開発してほしい機能を募集中!MITライセンスで公開します。詳しくはこちらの記事をご覧ください。ぷれりり・プレスリリース掲載無料のプレスリリース・スタンド!播磨孤道(はりまこどう)兵庫周辺のゆったり自転車一人旅の記事を書いていきます。