PHPExcel と PhpSpreadsheet の比較

このページでは、 PHPExcel と PhpSpreadSheet の違いをまとめています。

型の比較表

※ 変数名は「操作の比較表」で使用している例示の変数名です。

PHPExcel PhpSpreadsheet
読み込みオブジェクト ($reader) PHPExcel_Reader_Excel2007 等 PhpOffice\PhpSpreadsheet\Reader\Xlsx 等
書き込みオブジェクト ($writer) PHPExcel_Writer_Excel2007 等 PhpOffice\PhpSpreadsheet\Writer\Xlsx 等
ワークブック ($spreadsheet) PHPExcel PhpOffice\PhpSpreadsheet\Spreadsheet
ワークシート ($sheet) PHPExcel_Worksheet PhpOffice\PhpSpreadsheet\Worksheet\Worksheet
セル ($cell) PHPExcel_Cell PhpOffice\PhpSpreadsheet\Cell\Cell
名前付範囲 ($namedRange) PHPExcel_NamedRange PhpOffice\PhpSpreadsheet\NamedRange

操作の比較表

※ PhpSpreadsheet を使うコードにはあらかじめ下記の宣言があるものとします。(表の幅の都合上)

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Calculation\Calculation;
use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
PHPExcel PhpSpreadsheet
読み込みオブジェクトの生成 (.xlsx) $reader = PHPExcel_IOFactory::createReader('Excel2007'); $reader = IOFactory::createReader('Xlsx');
ファイル読み込み (.xlsx) $spreadsheet = $reader->load($path); $spreadsheet = IOFactory::load($path);
または
$spreadsheet = $reader->load($path);
書き込みオブジェクトの生成 (.xlsx) $writer = PHPExcel_IOFactory::createWriter($spreadsheet, 'Excel2007'); $writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
ファイル書き込み (.xlsx) $writer->save($path); 同左
ワークブック生成 $spreadsheet = new PHPExcel(); $spreadsheet = new Spreadsheet();
シート取得 $sheet = $spreadsheet->getSheetByName('シート名'); 同左
セルオブジェクト取得 $cell = $sheet->getCell('A1'); 同左
セル計算式取得 $v = $cell->getValue(); 同左
     設定 $cell->setValue('=SUM(A1:A10)'); 同左
セル計算値取得 $v = $cell->getCalculatedValue(); 同左
     一括取得 $vArray = $cell->rangeToArray('A1:B10'); 同左
名前付き値取得 (ブック) $namedRange = $spreadsheet->getNamedRange('名前');
$values = $namedRange->getWorksheet()->namedRangeToArray('名前');
同左
名前付き値取得 (シート) $values = $sheet->namedRangeToArray('名前'); 同左
計算キャッシュ無効化 PHPExcel_Calculation::getInstance()->setCalculationCacheEnabled(false); Calculation::getInstance($spreadsheet)->setCalculationCacheEnabled(false);
数式の事前計算無効化 $writer->setPreCalculateFormulas(false); 同左
A1形式の列名を取得(1→A, 2→B) $colName = PHPExcel_Worksheet::stringFromColumnIndex(1) $colName = Coordinate::stringFromColumnIndex(1);