PHP
PHPExcel

【PHPExcel】PHPでExcelを扱う

More than 1 year has passed since last update.


概要

PHPExcelライブラリを使うことでPHPでExcelを扱うことが出来ます。

xlsとxlsxどちらの形式でも扱うことが出来ます。


出来ないこと

オートシェイプを扱うことが出来ないみたいです。

テンプレートフィルなどでもオートシェイプを使っているとオートシェイプが消えてしまいます。


環境


  • CentOS7

  • PHP7


PHPExcelインストール



  1. PHPExcelに必要な拡張モジュールをインストールします

    xml,zip,gdが必要です。

    yum -y install --enablerepo=remi,epel,remi-php70 php-xml php-pecl-zip php-gd
    



  2. composerでインストールします。

    composer require phpoffice/phpexcel
    



使ってみる


新規作成

<?php

require_once __DIR__.'/../vendor/autoload.php';

// 新規作成
$excel = new PHPExcel();

// シート選択
$sheet = $excel->getActiveSheet();

// シート名
$sheet->setTitle('シート1');

// セルに入力
$sheet->setCellValue('A1', 'hoge');
$sheet->setCellValue('A2', 1);
$sheet->setCellValue('A3', 2);
$sheet->setCellValue('A4', '= A2 * A3');

// 空行挿入(挿入位置,挿入行数)
$sheet->insertNewRowBefore(1, 1);

// 空列挿入(挿入位置,挿入列数)
$sheet->insertNewColumnBefore('A', 1);

// xlsxで保存
$writer = PHPExcel_IOFactory::createWriter($excel, 'Excel2007');
$writer->save('./hoge.xlsx');

// xlsで保存
$writer2003 = PHPExcel_IOFactory::createWriter($excel, 'Excel5');
$writer2003->save('./hoge.xls');


ファイルの編集

<?php

require_once __DIR__.'/../vendor/autoload.php';

// 読み込み
$reader = PHPExcel_IOFactory::createReader('Excel2007');
$book = $reader->load('./hoge.xlsx');

//シート読み込み
$sheet = $book->getSheetByName("hoge");

//書き込む
$sheet->setCellValue('A1', 'hoge');

// 保存
$writer = PHPExcel_IOFactory::createWriter($book, "Excel2007");
$writer->save("./output.xlsx");