PHP で Excel

Excel シートの内容を 取得する

↓ こんな Excel ファイルを読む

  A B C D E F G H I J
1 A1 B1 C1 D1 E1 F1 G1 H1   J1
2 A2 B2 C2 D2 E2 F2 G2 H2   J2
3 A3 B3 C3 D3 E3 F3 G3 H3   J3
4 A4 B4 C4 D4 E4 F4 G4 H4   J4
5 A5 B5 C5 D5 E5 F5 G5 H5   J5
6                   J6
7 A7 B7 C7 D7 E7 F7 G7 H7 I7 J7

lesson004.php


<?php
// EXCELインスタンス作成
$excel = new COM("Excel.Application") or die;
$excel->Visible = 1;
$excel->DisplayAlerts = 0;

// ファイルオープン & 書込み
$wkb = $excel->Workbooks->Open($argv[1]);
$sheet = $wkb->WorkSheets->Item($argv[2]);

for ($iRow = 1; $iRow <= $sheet->Cells->CurrentRegion->Rows->Count; $iRow++)
{
$row = array();
for ($iCol = 1; $iCol <= $sheet->Cells->CurrentRegion->Columns->Count; $iCol++)
{
array_push($row, $sheet->Cells($iRow, $iCol)->Value);
}
echo join(",", $row), "\n";
}

$wkb->Close();
$excel->Quit();
unset($excel);
?>

実行結果

C:\>php c:\study\php\chapter004\lesson004.php c:\study\Book1.xls Sheet1
A1,B1,C1,D1,E1,F1,G1,H1
A2,B2,C2,D2,E2,F2,G2,H2
A3,B3,C3,D3,E3,F3,G3,H3
A4,B4,C4,D4,E4,F4,G4,H4
A5,B5,C5,D5,E5,F5,G5,H5

こんな風にもできる

lesson005.php


<?php
// EXCELインスタンス作成
$excel = new COM("Excel.Application") or die;
$excel->Visible = 1;
$excel->DisplayAlerts = 0;

// ファイルオープン & 書込み
$wkb = $excel->Workbooks->Open($argv[1]);
$sheet = $wkb->WorkSheets->Item($argv[2]);

foreach ($sheet->Cells->CurrentRegion->Rows as $row)
{
$rec = array();
foreach ($row->Columns as $col)
{
array_push($rec, $col->Value);
}
echo join(",", $rec), "\n";
}

$wkb->Close();
$excel->Quit();
unset($excel);
?>

実行結果

C:\>php c:\study\php\chapter004\lesson005.php c:\study\Book1.xls Sheet1
A1,B1,C1,D1,E1,F1,G1,H1
A2,B2,C2,D2,E2,F2,G2,H2
A3,B3,C3,D3,E3,F3,G3,H3
A4,B4,C4,D4,E4,F4,G4,H4
A5,B5,C5,D5,E5,F5,G5,H5