PHPでExcelを読み書きできるPhpSpreadsheetのインストールと簡単な使い方
PhpSpreadsheetとは
PhpSpreadsheetとは、ExcelやLibreOfficeCalcなどのスプレッドシートファイルを簡単に読み書き操作できる、PHPのフリーのライブラリです。
これとは別に PHPExcel というライブラリもありますが、PhpSpreadsheetはPHPExcelの次世代バージョンという位置づけです。PHPExcelのプロジェクトは2019年に凍結され、新バージョンのPHPにも対応していません。現状、PHPでExcelを扱う場合はPhpSpreadsheet一択となっています。
PhpSpreadsheetの対応PHPバージョン
対応しているPHPのバージョンはPHP8.0以上です。 (2023/11/16現在)
PhpSpreadsheetのインストール方法
インストールは簡単で、PHPのライブラリ管理ツールである「Composer」を使用します。
composer require phpoffice/phpspreadsheet
でインストールされます。
PhpSpreadsheetの使い方・コード
サンプルとして、下図のようなエクセルを出力するコードを書いてみます。
excel.php
<?php
// 必要なライブラリの読み込み
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
// スプレッドシートインスタンスを作成
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
// 1行目の属性ラベル
$sheet->setCellValue('A1', '氏名');
$sheet->setCellValue('B1', '性別');
$sheet->setCellValue('C1', '生年月日');
// 2行目以降の個人データ
$sheet->setCellValue('A2', 'レクタス 太郎'); // 氏名
$sheet->setCellValue('B2', '男'); // 性別
$sheet->setCellValue('C2', '1998/5/1'); // 生年月日
$sheet->setCellValue('A3', 'レクタス 花子');
$sheet->setCellValue('B3', '女');
$sheet->setCellValue('C3', '1997/12/10');
$sheet->setCellValue('A4', 'レクタス 次郎');
$sheet->setCellValue('B4', '男');
$sheet->setCellValue('C4', '1995/4/30');
// Excelファイルの書き出し
$writer = new Xlsx($spreadsheet);
$writer->save('名簿.xlsx');
実行してみます。
php excel.php
出力された 名簿.xlsx をエクセルで開いてみます。
きちんと出力されていますが、A列の列幅が狭く、氏名が表示しきれていません。
下記の列幅自動調整のコードを、Excel書き出しの直前に入れてみます。
$sheet->getColumnDimension('A')->setAutoSize(true);
$sheet->getColumnDimension('B')->setAutoSize(true);
$sheet->getColumnDimension('C')->setAutoSize(true);
再度実行しExcelで開いてみます。
今度は幅も問題なく出力されました。(Excelで自動調整した時より余計に幅を取っているみたい)
今回はPhpSpreadsheetのインストール方法と簡単な使い方を紹介しました。
また後日、より詳しい使い方を紹介します。
ご質問等ありましたら,お手数ですが弊社の個人情報保護方針をお読み頂いた上でフォームからお願い致します.
※このページと無関係な内容のセールスはご遠慮ください.