PhpSpreadsheet を使って PHP で Excel ファイルの操作(読み込み)
はじめに
PHPOffice/PhpSpreadsheet を使って、エクセルファイルを操作する方法(読み込み系)を整理した。
TL;DR
composer require phpoffice/phpspreadsheet
でインストールload
でファイル読み込み,getSheetByName
でシート選択getRowIterator
&getColumnIterator
やrangeToArray
でデータ取得
目次
環境・条件
1 | $ php -v |
詳細
以下のサイトを参考にした。
セットアップ
composer require
でインストール
1 | $ composer require phpoffice/phpspreadsheet |
使い方
エクセル読み込み
参考: Reading Files
Xlsx
のインスタンスを生成して、load
で読み込み。
1 |
|
シートの取得
参考: Worksheets
getSheetByName
でシートの取得。
1 | $sheet_name = 'Sheet1'; |
最終 行/列 の情報を取得
参考: Looping through cells - Accessing cells
getHighestRow
, getHighestColumn
, getHighestDataRow
, getHighestDataColumn
, getHighestRowAndColumn
で、最終行や最終列の情報を取得できる。
1 | $sheet->getHighestRow(); |
データ範囲の読み込み
イテレータ
参考: Looping through cells - Accessing cells
getRowIterator
, getColumnIterator
を使ってループ処理させることができる。
※ちゃんと有効なデータ範囲内までで処理が終了する。
1 | foreach ($sheet->getRowIterator() as $row) { |
Array で取得
参考: Retrieving a range of cell values to an array - Accessing cells
rangeToArray
で指定範囲のデータを Array
で取得可能。
1 | $data = $sheet->rangeToArray("A1:C3"); |
最終 行/列 の情報を取得 と組み合わせると便利。
1 | $last_row = $sheet->getHighestDataRow(); |
まとめ
composer require phpoffice/phpspreadsheet
でインストールload
でファイル読み込み,getSheetByName
でシート選択getRowIterator
&getColumnIterator
やrangeToArray
でデータ取得
その他・メモ
ソート/フィルタ
AutoFilter Sorting に書かれているが、オートフィルタでのソートには未対応。
In MS Excel, Autofiltering also allows the rows to be sorted. This feature is not supported by PhpSpreadsheet.
MS Excelでは、オートフィルタリングにより行をソートすることもできます。この機能はPhpSpreadsheetではサポートされていません。
よくある操作(Recipes)
Recipes に色々とまとまっているので、参考になりそう。
参考文献
- PHPOffice/PhpSpreadsheet: A pure PHP library for reading and writing spreadsheet files
- Welcome to PhpSpreadsheet’s documentation - PhpSpreadsheet Documentation
- PhpSpreadsheetの使い方 - Qiita
関連記事
- Laravel で現在の URL 取得方法まとめ
- Laravel で Cookie を使う(参照/設定/削除)
- Laravel で PDF ファイルをブラウザで開く
- Laravel で withCount と having を使って絞り込み
- Laravel で「開始日時 < 終了日時」であることをバリデーションする
- Laravel で生 SQL を実行
- JavaScript で URL のクエリパラメータを操作する方法
- jQuery Select2 で、初期値の設定と選択状態のクリア