2010年03月07日

PHPExcelを使ってみました(7)


セルがセル範囲に含まれているか調べるサンプルです。

[Excelファイルのデータ]
A1の値:商品名、 B1の値:単価
A2の値:トマト、 B2の値:80
A3の値:キャベツ、B3の値:120
A4の値:もやし、 B4の値:50
B5の値:=SUM(B2:B4)

[ソースコード]
<?php
header('Content-Type: text/html; charset=EUC-JP');

// ライブラリの読み込み
require_once('PHPExcel/IOFactory.php');

// Excelファイルのロード(前回のExcelファイルを利用)
$obj = PHPExcel_IOFactory::load('test05.xlsx');
$obj->setActiveSheetIndex(0);
$sheet = $obj->getActiveSheet();

$b = 'B4';
$r = 'A1:E10';
if ($sheet->getCell($b)->isInRange($r)) {
echo "セル{$b}はセル範囲{$r}に含まれています";
}
?>

[PHPファイルの場所]
ファイル名[PHPExcel07.php]で、D:\xampp\htdocsに保存します。
(文字コードはEUC-JPで保存)

[実行方法]
(1) XAMPP Control Panel Applicationを起動し、Apacheが起動
していない場合は起動します。
(2)ブラウザを起動して[http://localhost/PHPExcel07.php]を表示
posted by rururu at 23:00| Comment(0) | TrackBack(0) | PHP

2010年01月28日

PHPExcelを使ってみました(6)

セルにデータが存在するか調べるサンプルです。

[Excelファイルのデータ]
  A1の値:商品名、  B1の値:単価
  A2の値:トマト、  B2の値:80
  A3の値:キャベツ、B3の値:120
  A4の値:もやし、  B4の値:50
                    B5の値:=SUM(B2:B4)

[ソースコード]
<?php
header('Content-Type: text/html; charset=EUC-JP');

// ライブラリの読み込み
require_once('PHPExcel/IOFactory.php');

// Excelファイルのロード(前回のExcelファイルを利用)
$obj = PHPExcel_IOFactory::load('test05.xlsx');
$obj->setActiveSheetIndex(0);
$sheet = $obj->getActiveSheet();

// セルA1にデータが存在するか調べる(cellExists)
if ($sheet->cellExists('A1')) {
    echo 'セルA1にはデータが存在します<br />';
} else {
    echo 'セルA1にはデータが存在しません<br />';
}
// セルA1にデータが存在するか調べる(cellExistsByColumnAndRow)
if ($sheet->cellExistsByColumnAndRow(0,0)) {
    echo 'セルA1にはデータが存在します<br />';
} else {
    echo 'セルA1にはデータが存在します<br />';
}
// セルA5にデータが存在するか調べる(cellExists)
if ($sheet->cellExists('A5')) {
    echo 'セルA5にはデータが存在します<br />';
} else {
    echo 'セルA5にはデータが存在しません<br />';
}
// セルA5にデータが存在するか調べる(cellExistsByColumnAndRow)
if ($sheet->cellExistsByColumnAndRow(0,5)) {
    echo 'セルA5にはデータが存在します<br />';
} else {
    echo 'セルA5にはデータが存在しません<br />';
}
?>

[PHPファイルの場所]
ファイル名[PHPExcel06.php]で、D:\xampp\htdocsに保存します。
(文字コードはEUC-JPで保存)

[実行方法]
(1) XAMPP Control Panel Applicationを起動し、Apacheが起動
     していない場合は起動します。
(2)ブラウザを起動して[http://localhost/PHPExcel06.php]を表示
posted by rururu at 22:14| Comment(0) | TrackBack(0) | PHP

PHPExcelを使ってみました(5)


数式の計算結果を取得して表示するサンプルです。

[Excelファイルのデータ]
A1の値:商品名、 B1の値:単価
A2の値:トマト、 B2の値:80
A3の値:キャベツ、B3の値:120
A4の値:もやし、 B4の値:50
B5の値:=SUM(B2:B4)

[ソースコード]
<?php
header('Content-Type: text/html; charset=EUC-JP');

// ライブラリの読み込み
require_once('PHPExcel/IOFactory.php');

// Excelファイルのロード
$obj = PHPExcel_IOFactory::load('test05.xlsx');

// アクティブシートを設定
$obj->setActiveSheetIndex(0);
$sheet = $obj->getActiveSheet();

// セルの数式の計算結果を取得
$a = $sheet->getCell('B5')->getCalculatedValue();
echo "合計:{$a}円";
?>

[PHPファイルの場所]
ファイル名[PHPExcel05.php]で、D:\xampp\htdocsに保存します。
(文字コードはEUC-JPで保存)

[実行方法]
(1) XAMPP Control Panel Applicationを起動し、Apacheが起動
していない場合は起動します。
(2)ブラウザを起動して[http://localhost/PHPExcel05.php]を表示
(ExcelファイルはPHPファイルと同じ場所に配置)
posted by rururu at 22:11| Comment(0) | TrackBack(0) | PHP

2010年01月20日

PHPExcelを使ってみました(4)


セルのデータを取得して表示するサンプルです。

[ソースコード]
<?php
header('Content-Type: text/html; charset=EUC-JP');

// ライブラリの読み込み
require_once('PHPExcel/IOFactory.php');

// Excelファイルのロード
$obj = PHPExcel_IOFactory::load('test04.xlsx');

// アクティブシートを設定
$obj->setActiveSheetIndex(0);
$sheet = $obj->getActiveSheet();

// 行と列を指定してセルの値を取得
$a = $sheet->getCellByColumnAndRow(0, 2)->getValue();
echo mb_convert_encoding($a, 'EUC-JP', 'UTF-8') . '<br />';

// アドレスを指定してセルの値を取得
$a = $sheet->getCell('A2')->getValue();
echo mb_convert_encoding($a, 'EUC-JP', 'UTF-8') . '<br />';
?>

[PHPファイルの場所]
ファイル名[PHPExcel04.php]で、D:\xampp\htdocsに保存します。
(文字コードはEUC-JPで保存)

[実行方法]
(1) XAMPP Control Panel Applicationを起動し、Apacheが起動
していない場合は起動します。
(2)ブラウザを起動して[http://localhost/PHPExcel04.php]を表示
(ExcelファイルはPHPファイルと同じ場所に配置)
posted by rururu at 00:49| Comment(0) | TrackBack(0) | PHP

PHPExcelを使ってみました(3)


行と列を指定/データ型をして値を設定/リンクの指定のサンプルです。

[ソースコード]
<?php
header('Content-Type: text/html; charset=EUC-JP');

// ライブラリの読み込み
require_once('PHPExcel/IOFactory.php');

// オブジェクトの生成
$obj = new PHPExcel();

// アクティブシートを設定
$obj->setActiveSheetIndex(0);
$sheet = $obj->getActiveSheet();

// 行と列を指定してセルに値を設定 (A2に文字が書き込まれます)
$value = mb_convert_encoding('テスト','UTF-8','EUC-JP');
$sheet->setCellValueByColumnAndRow(0,2,$value);

//
// データ型を指定してセルに値を設定
// 指定可能なデータ型の例
// 定数 | 値 | 内容
// -----------------------------------------------
// TYPE_STRING | s | 文字列
// TYPE_FORMULA | f | 数式
// TYPE_NUMERIC | n | 数値
// TYPE_BOOL | b | 論理値
//
$value2 = '0001';
$sheet->getCell('A3')->setValueExplicit($value2,
PHPExcel_Cell_DataType::TYPE_STRING);

// セルにリンクを追加
$value3 = 'Yahoo';
$value = mb_convert_encoding($value3,'UTF-8','EUC-JP');
$sheet->setCellValue('A4',$value);
$url = 'http://www.yahoo.co.jp';
$sheet->getCell('A4')->getHyperLink()->setUrl($url);

// Excelファイルを保存
$obj = PHPExcel_IOFactory::createwriter($obj, 'Excel2007');
$obj->save('test03.xlsx');
?>

[PHPファイルの保存先]
ファイル名[PHPExcel03.php]で、D:\xampp\htdocsに保存します。
(文字コードはEUC-JPで保存)

[実行方法]
(1) XAMPP Control Panel Applicationを起動し、Apacheが起動
していない場合は起動します。
(2)ブラウザを起動して[http://localhost/PHPExcel03.php]を表示
(ExcelファイルはPHPファイルと同じ場所に保存されます。)
posted by rururu at 00:35| Comment(0) | TrackBack(0) | PHP

PHPExcelを使ってみました(2)


PHPファイルと同じ場所にExcelファイルを保存するサンプルです。

[ソースコード]
<?php
header('Content-Type: text/html; charset=EUC-JP');

// ライブラリの読み込み
require_once('PHPExcel/IOFactory.php');

// オブジェクトの生成
$obj = new PHPExcel();

// アクティブシートを設定
$obj->setActiveSheetIndex(0);
$sheet = $obj->getActiveSheet();

// セルに値を設定
$value = mb_convert_encoding('テスト','UTF-8','EUC-JP');
$sheet->setCellValue('A1',$value);

// Excelファイルを保存
$obj = PHPExcel_IOFactory::createwriter($obj, 'Excel2007');
$obj->save('test02.xlsx');
?>

[PHPファイルの保存先]
ファイル名[PHPExcel02.php]で、D:\xampp\htdocsに保存します。
(文字コードはEUC-JPで保存)

[実行方法]
(1) XAMPP Control Panel Applicationを起動し、Apacheが起動
していない場合は起動します。
(2)ブラウザを起動して[http://localhost/PHPExcel02.php]を表示
posted by rururu at 00:31| Comment(0) | TrackBack(0) | PHP

PHPExcelを使ってみました(1)


PHPExcelというPHPでExcelファイルの読み取りと
書き込みができるライブラリを使ってみました。

―――――――――――――――――――
環境設定
―――――――――――――――――――
XAMPP(http://www.apachefriends.org/jp/xampp-windows.html)
をD:\xamppにインストールしてから、PHPExcel(http://phpexcel.codeplex.com/)
をダウンロードして解凍します。
ClassesフォルダのPHPExcelフォルダとPHPExcel.phpをD:\xampp\php\pearに
コピーします。

―――――――――――――――――――
PHPExcelの特徴
―――――――――――――――――――
PHPでExcelファイルを生成できるライブラリです。
ファイルの読み書きができ、ワークシート、セル、
罫線、図形、コメント等の操作ができます。
Excel97-2003形式はサポートしていないようです。

---------------------------------------------------
形式 | 入力 | 出力
---------------------------------------------------
Excel2007形式 | ○ | ○
シリアライズ | ○ | ○
CSV形式 | ○ | ○
BIFF5(Excel95)形式 | ○ | ○
HTML形式 | × | ○
PDF形式 | × | ○

―――――――――――――――――――
Excelファイルを読み取る
―――――――――――――――――――
PHPファイルと同じ場所にあるtest01.xls
を開き、一番左端のシートのA1の値を取得して
結果をブラウザに表示するサンプルです。

[ソースコード]
<?php
header('Content-Type: text/html; charset=EUC-JP');

// ライブラリの読み込み
require_once('PHPExcel/IOFactory.php');

// Excelファイルの読み込み
// (test01.xlsxはphpファイルと同じ場所に置く)
$obj = PHPExcel_IOFactory::load('test01.xlsx');

// アクティブシートを設定
$obj->setActiveSheetIndex(0);
$sheet = $obj->getActiveSheet();

// セルの値を取得
$value = $sheet->getCell('A1')->getValue();
echo mb_convert_encoding($value,'EUC-JP','UTF-8');
?>

[PHPファイルの保存先]
ファイル名[PHPExcel01.php]で、D:\xampp\htdocsに保存します。
(文字コードはEUC-JPで保存)
シフトJISで保存してシフトJISで表示させる場合は、ソースコードの
先頭と最後の行の「EUC-JP」を「SJIS」に変更すれば表示されると
思います。

[実行方法]
(1) XAMPP Control Panel Applicationを起動し、Apacheが起動
していない場合は起動します。
(2)ブラウザを起動して[http://localhost/PHPExcel01.php]を表示
posted by rururu at 00:29| Comment(0) | TrackBack(0) | PHP