WindowsのPHPでExcelを読み込んでみる
Windows環境にて、PHPでCOMを使ってExcelを読み込んでみる。
【参考】 Windows版PHPでExcelを操作する - それマグで! http://takuya-1st.hatenablog.jp/entry/20071213/1197513796
下記のExcelファイルを読み込んでみる。
sample.php
<?php // EXCELのインスタンスを作成 $excel = new COM("excel.application") or die; // ファイルを開く $file_name = dirname(__FILE__) . "/sample.xlsx"; $file = $excel->Workbooks->Open($file_name); foreach ($file->Worksheets as $sheet) { // シート名を表示 echo $sheet->Name . "\n"; // セルの値を表示 for ($rows = 1; $rows <= 4; $rows++) { for ($cols = 1; $cols <= 2; $cols++) { echo $sheet->Cells($rows, $cols)->Value . " "; } echo "\n"; } echo "\n"; } // ファイルを閉じる $file->Close(); // Excelを終了 $excel->Quit();
UsedRangeを使う場合
UsedRangeを使うと有効な範囲だけ取得できる。
// セルの値を表示 for ($rows = 1; $rows <= 4; $rows++) { for ($cols = 1; $cols <= 2; $cols++) { echo $sheet->Cells($rows, $cols)->Value . " "; } echo "\n"; }
↓下記のように書き換える
// セルの値を表示 foreach ($sheet->UsedRange->Rows as $row) { foreach ($row->Columns as $cell) { echo $cell->Value . " "; } echo "\n"; }
「変更を保存しますか」が出る場合
プログラム内でExcelファイルを閉じる際、
「変更を保存しますか」はDisplayAlertsを0にするといいっぽい。
$excel->DisplayAlerts = 0;