PHPでExcelを読み書きできるPhpSpreadsheetのインストールと簡単な使い方

最終更新日: 公開日: 2023年11月

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のインストール方法と簡単な使い方を紹介しました。
また後日、より詳しい使い方を紹介します。

 

Contact

ご質問等ありましたら,お手数ですが弊社の個人情報保護方針をお読み頂いた上でフォームからお願い致します.
※このページと無関係な内容のセールスはご遠慮ください.

 
   
contact
Pagetop