PHPでExcelとCSVの読み込み速度を比較してみる(PHPExcelの場合)

PHPでExcelとCSVの読み込み速度を比較してみる
の続き

PHPExcelを使った場合も試してみる。

検証用プログラム

php_excel.php

<?php
$time = microtime(true);

// PHPExcelライブラリ読み込み
require_once 'PHPExcel.php';
require_once 'PHPExcel/IOFactory.php';

// ファイルを開く
$obj = PHPExcel_IOFactory::createReader('Excel2007');
$file = $obj->load('sample.xlsx');

// 各セルの値を合計する
$count = 0;
$file->setActiveSheetIndex(0);
$sheet = $file->getActiveSheet();
foreach ($sheet->getRowIterator() as $row) {
  foreach ($row->getCellIterator() as $cell) {
    $count += $cell->getCalculatedValue();
  }
}

// 結果を表示
echo "合計=" . $count . "\n";
echo sprintf("%.4f秒", microtime(true) - $time);

結果

> php php_excel.php
合計=1000000
0.6007秒

> php php_excel.php
合計=1000000
0.6029秒

> php php_excel.php
合計=1000000
0.6074秒

> php php_excel.php
合計=1000000
0.6031秒

> php php_excel.php
合計=1000000
0.6090秒

まとめ

Excelファイルの読み込み(COM) ※前回の結果 約3.9秒
Excelファイルの読み込み(PHPExcel) 約0.6秒

COMよりPHPExcelのほうが速い。