5

データを処理してDBに挿入できるように、PHPでExcelファイルからデータを読み取りたいです。
SO を見回すと、PHPExcel がこのタスクの主要なライブラリであるように見えます。

PHPExcel の GitHub ページ ( https://github.com/PHPOffice/PHPExcel ) にアクセスしましたが、実際にライブラリを使用する方法がわかりません。大量のサンプル ファイルがありますが、私が探している単純なユース ケースと一致するものはありませんでした。
さらに、ダウンロードする必要がある GitHub ページのファイルと、インクルード ファイルのフォルダー構造がどのようなものである必要があるかさえわかりません。

そのため、上記のリンク先の GitHub ページの現在の構造 (v1.8 用) を考えると、ダウンロードする必要があるファイルと、Excel ファイルへのパスを指定してデータを読み取るための簡単なコード例は何ですか?ファイルから?

4

1 に答える 1

20

Mark Ba​​ker は、私を正しい答えに導いてくれました。私はPHPでComposerを使用していません(おそらく学ぶ必要があります)が、これを機能させるためにPHPExcelのGitHubページ(https://github.com/PHPOffice/PHPExcel)に行き、緑色の[クローンとダウンロード] ボタン、[ ZIPのダウンロード]リンクの順にクリックします。

ファイルを解凍すると、 というフォルダができましたPHPExcel-1.8。そのフォルダーを、読みたい Excel ファイル (以下のコード内test.xlsx) と、以下のコードを含む PHP ファイルの両方と同じフォルダーに移動しました。

IOFactory.phpそれを機能させるための鍵は、ファイルへの正しいパスを入力することでした。簡単に思える人もいるかもしれませんが、私はつまずきました。

上記とMark Ba​​kerのコメントを考えると、次のコードは私にとって完璧に機能しました(コメント部分に注意してください):

<?php

  //Had to change this path to point to IOFactory.php.
  //Do not change the contents of the PHPExcel-1.8 folder at all.
  include('PHPExcel-1.8/Classes/PHPExcel/IOFactory.php');

  //Use whatever path to an Excel file you need.
  $inputFileName = 'test.xlsx';

  try {
    $inputFileType = PHPExcel_IOFactory::identify($inputFileName);
    $objReader = PHPExcel_IOFactory::createReader($inputFileType);
    $objPHPExcel = $objReader->load($inputFileName);
  } catch (Exception $e) {
    die('Error loading file "' . pathinfo($inputFileName, PATHINFO_BASENAME) . '": ' . 
        $e->getMessage());
  }

  $sheet = $objPHPExcel->getSheet(0);
  $highestRow = $sheet->getHighestRow();
  $highestColumn = $sheet->getHighestColumn();

  for ($row = 1; $row <= $highestRow; $row++) { 
    $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, 
                                    null, true, false);

    //Prints out data in each row.
    //Replace this with whatever you want to do with the data.
    echo '<pre>';
      print_r($rowData);
    echo '</pre>';
  }
于 2016-12-30T17:06:24.547 に答える