文書更新:2019年06月01日(土) 午前7時52分19秒

Home > 備忘録 > 言語関連 > php に関すること > Spread Sheet の読書込み( 25 )

Read and write spreadsheet files (CSV, XLSX and ODS)

spout のダウンロード

  1. master.zip をダウンロード
  2. ※こちら( box/spout · GitHub )からダウンロードする。
    [root@server]# wget https://github.com/box/spout/archive/master.zip
  3. master.zip を解凍する
  4. [root@server]# unzip master.zip
  5. フォルダ「spout-master」 を適当な場所にコピーし、アクセス権を 755 に設定する
  6. こちら( Releases · box/spout · GitHub )から最新バージョンや過去バージョンをダウンロードできます。

spout の使用例

※下記のソースは( box/spout · GitHub )から引用しています。
  1. Reader
  2. <?php
    require_once '[PATH/TO]/src/Spout/Autoloader/autoload.php';
    
    use Box\Spout\Reader\ReaderFactory;
    use Box\Spout\Common\Type;
    
    $reader = ReaderFactory::create(Type::CSV); // for CSV files
    //$reader = ReaderFactory::create(Type::XLSX); // for XLSX files
    //$reader = ReaderFactory::create(Type::ODS); // for ODS files
    
    $reader->open($filePath);
    
    foreach ($reader->getSheetIterator() as $sheet) {
        foreach ($sheet->getRowIterator() as $row) {
            // do stuff with the row
        }
    }
    
    $reader->close();
    ?>
  3. Writer
  4. <?php
    require_once '[PATH/TO]/src/Spout/Autoloader/autoload.php';
    
    use Box\Spout\Writer\WriterFactory;
    use Box\Spout\Common\Type;
    
    $writer = WriterFactory::create(Type::CSV); // for CSV files
    //$writer = WriterFactory::create(Type::XLSX); // for XLSX files
    //$writer = WriterFactory::create(Type::ODS); // for ODS files
    
    $writer->openToFile($filePath); // write data to a file or to a PHP stream
    //$writer->openToBrowser($fileName); // stream data directly to the browser
    
    $writer->addRow($singleRow); // add a row at a time
    $writer->addRows($multipleRows); // add multiple rows at a time
    
    $writer->close();
    ?>