phpspreadsheet("version": "1.18.0")を使ってこんなエクセルシートを作成してみました。
結構、使えない機能が多くて少し難儀しました。
行をコピーして貼り付けるとか、列をコピーして貼り付けるとか出来ないんですよね。
マニュアルによると、
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階 011-520-1800 011-520-1802