phpspreadsheetを使ってみた


 

phpspreadsheet("version": "1.18.0")を使ってこんなエクセルシートを作成してみました。

結構、使えない機能が多くて少し難儀しました。
行をコピーして貼り付けるとか、列をコピーして貼り付けるとか出来ないんですよね。

PhpSpreadsheetのマニュアル

マニュアルによると、

 

getPageSetup()->setLeft(0.75)と記載するようになっているが、
実際は、getPageMargins()->setLeft(0.5)と記載しないと動かない。
メソッドがないと怒られる。
最新バージョンとマニュアルの同期がとれていないのだろう。
更に、、、
(実際のコーディング)$spreadsheet->getActiveSheet()->getPageSetup()->setLeft(0.75);
と書くが、、、左余白が0.75にならない。

出力した結果↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

 

列幅や行高も、マニュアル通りではうまくいかない。
        // 列幅1
        $columndimension= $outsheet->getColumnDimensions();
        foreach($columndimension  as $cd)
        {
            $cd->setColumnWidth(1);
        }
        $outsheet->getColumnDimension('A')->setWidth(14);
        // 行高15.75
        $rowdimension= $outsheet->getRowDimensions();
        foreach($rowdimension  as $rd)
        {
            $rd->setRowHeight(15.75);
        }

こういうこともできない
$outsheet->setCellValue('J'.$row + 1, $data->purchase_no);
こうしてもダメ
$outsheet->setCellValue('J'.($row + 1), $data->purchase_no);
結果、、、
$row_next = $row + 1;
$outsheet->setCellValue('J'.$row_next, $data->purchase_no);
と書いてうまくいきました。

機能が少ない分、なんとかかんとか胡麻化して完成まで辿り着きましたが、まだまだ課題は多そうですね。

 

 

  お問い合わせ  - お気軽にお問い合わせください - 

  • 株式会社 パブリックリレーションズ
  • 〒064-0807
  • 北海道札幌市中央区南7条西1丁目13番地 弘安ビル5階
メールでのお問い合わせはこちら

  • この記事をシェアする