PHPでPhpSpreadsheetを使ってExcelファイルを読み込む

公開日: 


PhpSpreadsheetとは何か?

PHPでExcelファイルを操作するためのライブラリの1つです。

以前は「PhpExcel」という名前で知られていましたが、現在はその後継版として開発が進められています。

新規Excelファイルの作成、既存Excelファイルの読み込み、読み込んだファイルの編集など、Excelファイルに対する一通りの操作が可能です。

また、Excelファイルだけでなく、CSVやHTML形式のファイルも扱うことができます。

ただし、注意点として、PHPのバージョンが7.2以上であることが必要です。

使い方に関しては、公式サイトに詳しく説明されています。

PhpSpreadsheet

PhpSpreadsheet を導入する

composerを使えばすぐに入れられます。

composer require phpoffice/phpspreadsheet

Excelファイルを読み込む

読み込み方法は様々ですが、一般的な特定のセルに対する読み込み方法の一例を以下に記します。

<?php

// Excel読み込み
require_once(./autoload.php);

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx as XlsxReader;

$reader = new XlsxReader();
$reader->setReadDataOnly(true); // 読み込みモード
$spreadSheet = $reader->load('xxx.xlsx'); // エクセルファイル読み込み
$sheetCount  = $spreadSheet->getSheetCount();  // シート数取得

// シート数分回す
for ($i = 0; $i < $sheetCount; $i++) {
  $sheet = $spreadSheet->getSheet($i); // シート情報取得
  
  $sheetName = $sheet->getTitle(); // シート名取得
  
  $value = $sheet->getCell('A1')->getValue(); // セル内の値取得
  
  $value = $sheet->getCell('A1')->getOldCalculatedValue(); // 計算値の場合はこちら
  
  $sheet->disconnectCells(); // 大量のデータを読み込む場合、パフォーマンス考慮する場合、都度切ったほうがいいかも
}

?>