データを Excel 形式で入手したときに、とにかくパッとデータを扱いやすい形式に変換したい、という時に便利です。
Excel は御存知の通り色々できるので、読んだデータが何かと加工されていたらプレーンテキストに変換するなどの処理が必要かもしれません。 (けど、私は幸いにも特にそういった必要性がなかったのでそのことには触れません)
PHPExcel を使う
そういうライブラリがあるので使います。
composer require phpoffice/phpexcel
データを配列として取得する
excel_dumper.php
<?php
require_once __DIR__ . '/vendor/autoload.php';
function excel_dump($path)
{
$excel = PHPExcel_IOFactory::createReader('Excel5');
$book = $excel->load($path);
$sheet = $book->getActiveSheet();
return $sheet->toArray(null, true, true, true);
}
$data = excel_dump('/path/to/excel/book.xls');
echo json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
結果
[
{
"A": "107-0062",
"B": "東京都",
"C": "港区",
"D": "南青山",
"E": "2丁目2番15号",
"F": "ウイン青山1403",
"G": "Increments株式会社"
},
{
"A": "省略……",
"B": "省略……",
"C": "省略……",
"D": "省略……",
"E": "省略……",
"F": "省略……",
"G": "省略……"
}
]
補足
*.xls
ではなく *.xlsx
の場合は createReader
に渡す引数を Excel2007
にして下さい。