前提・実現したいこと
作業テーブル(作業者ID、作業日、作業時間)から作業者毎にデータを抽出し、日報、月報、総計のエクセルを作業者毎のブックに
まとめて出力する事を考えております。
テンプレートのエクセルファイルが用意されており、日報、月報、総計のシートになっております。
出力する際、日報は日付毎にシートを分け、月報は月毎にシートを分け、総計は1シートで全データの総計となるよう、考えております。
発生している問題
PhpSpreadsheetは未経験(旧のPHPExcelも未経験。PHPそのものも未経験)の為、とりあえず動きを確認する意味で、ネット上の情報を
確認しながら動きを確認し、テンプレートを読み込んで、3つのシートにデータをセットし、エクセルファイルを出力するところまでは
確認できました。
しかし、シートをコピーして、コピーしたシートに対してデータをセットする部分と、元のシートを削除する部分が上手く出来ない状況です。
(エクセルファイルの出力まで至らない)
とにかく未経験な上、周りに詳しい人もいない状況なので、アドバイスを頂けると非常に助かります。
該当のソースコード
PHP
1<?php 2 require_once 'c:\windows\system32\vendor\autoload.php'; 3 4 $reader = new PhpOffice\PhpSpreadsheet\Reader\Xlsx(); 5 $reader->setIncludeCharts(TRUE); 6 7 $book = $reader->load('nippou_template.xlsx'); 8 9 $book->setActiveSheetIndex(0); 10 $sheet = $book->getActiveSheet(); 11 $sheet = $baseSheet->copy(); 12 $sheet->setTitle("nippou_new" . $sheetNum, false); 13 $book->addSheet( $sheet ); 14 $book->setActiveSheetIndex(4); 15 $sheet = $book->getActiveSheet(); 16 $sheet->setCellValue('C2', 'AAAAAAAA'); 17 18 $book->setActiveSheetIndex(1); 19 $sheet = $book->getActiveSheet(); 20 $sheet = $baseSheet->copy(); 21 $sheet->setTitle("soukei_new" . $sheetNum, false); 22 $book->addSheet( $sheet ); 23 $book->setActiveSheetIndex(5); 24 $sheet = $book->getActiveSheet(); 25 $sheet->setCellValue('D3', 'AAAAAAAA'); 26 $sheet->setCellValue('V3', 'BBBBBBBB'); 27 $sheet->setCellValue('L3', 'CCCCCCCC'); 28 29 header("Content-Description: File Transfer"); 30 header('Content-Disposition: attachment; filename="nippou_test_download.xlsx"'); 31 header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 32 header('Content-Transfer-Encoding: binary'); 33 header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 34 header('Expires: 0'); 35 ob_end_clean(); //バッファ消去 36 $writer = new PhpOffice\PhpSpreadsheet\Writer\Xlsx($book); 37 $writer->save('php://output'); 38 39?>

回答1件
あなたの回答
tips
プレビュー