概要

PHPExcelライブラリを使うことでPHPでExcelを扱うことが出来ます。 xlsとxlsxどちらの形式でも扱うことが出来ます。

出来ないこと

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

環境

  • CentOS7
  • PHP7

PHPExcelインストール

  1. PHPExcelに必要な拡張モジュールをインストールします xml,zip,gdが必要です。

    1
    
    yum -y install --enablerepo=remi,epel,remi-php70 php-xml php-pecl-zip php-gd
  2. composerでインストールします。

    1
    
    composer require phpoffice/phpexcel

使ってみる

新規作成

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?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');

ファイルの編集

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
<?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");