PHP入門 その7

前回は新規Excelファイルを作成しましたが、

今回は前回のExcelファイルを読み込んで上書き編集してみましょう。

 

<?php
set_include_path(get_include_path().PATH_SEPARATOR.$_SERVER["DOCUMENT_ROOT"].'/Classes/');

include_once 'PHPExcel.php';
include_once 'PHPExcel/IOFactory.php';

$price = 1000;
$num = 3;

//前回ファイルの読み込み
$reader = PHPExcel_IOFactory::createReader('Excel2007');
$book = $reader -> load("sample.xlsx");

$book->setActiveSheetIndex(0);
$sheet = $book -> getActiveSheet();

//セルに値挿入
$sheet -> setCellValue("A1", "既存ファイル編集");
$sheet -> setCellValue("B2", "今日は".date("y/m/d"));
$sheet -> setCellValue("C3", 900*7);
$sheet -> setCellValue("D4", "合計金額".$price * $num."円");

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

?>

sample.xlsx

 

既存ファイルの編集は、新規作成処理とほぼ変わりません。

違う点はこの2行です。ここで、既存ファイルの読み込みを行っています。

//読み込むファイルの種類指定
$reader = PHPExcel_IOFactory::createReader('Excel2007');
//読み込みたいファイル名の指定
$book = $reader -> load("sample.xlsx");

この処理以外は前回とまったく同じことをしています。

 

この既存ファイルの読み込み処理を使うことでさらに便利になることがあります。

それはテンプレートファイルの使用です。

書式設定など必要な設定を行ったテンプレートファイルを作成しておき、プログラムではテンプレートファイルを読み込み

必要な箇所に値を挿入し別名保存することで、いちいち新たに書式設定をしなくてもすみます。

特に、決まった書式がある帳票なんかを作成する時には非常に便利です。