PhpSpreadsheetを使用してEXCEL操作、ダウンロードを行っていますが
HTML形式での書き込み後、レイアウト(枠線など)の操作が反映されません。
以下ソースの//レイアウト設定の部分が反映されないです。
EXCEL自体はダウンロードできて出力データも想定のものが出ています。
PHPはあまり詳しくないので教えていただきたいです。
よろしくお願いいたします。
PHP
1<?php 2ini_set("display_errors", 1); 3require '/home/ec2-user/environment/vendor/autoload.php'; 4 5// Spreadsheet 6use PhpOffice\PhpSpreadsheet\Spreadsheet; 7use PhpOffice\PhpSpreadsheet\Reader\Xls as XlsReader; 8use PhpOffice\PhpSpreadsheet\Reader\Xlsx as Reader; 9use PhpOffice\PhpSpreadsheet\Writer\Xlsx; 10use PhpOffice\PhpSpreadsheet\Style\NumberFormat; 11use PhpOffice\PhpSpreadsheet\Style\Border; 12use PhpOffice\PhpSpreadsheet\Style\Alignment; 13use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; 14 15$start_date = $_POST['start_date1']; 16$end_date = $_POST['end_date1']; 17$target_month = $_POST['target_month']; 18$excel_outdate = $_POST['excel_outdate']; 19 20// スプレッドシートを作成 21$spreadsheet = new Spreadsheet(); 22 23// ファイルのプロパティを設定 24$spreadsheet->getProperties() 25 ->setTitle($target_month); 26 27// シート作成 28$spreadsheet->getActiveSheet('sheet1')->UnFreezePane(); 29$sheet = $spreadsheet->getActiveSheet(); 30$sheet->setTitle($target_month); 31 32$reader = new \PhpOffice\PhpSpreadsheet\Reader\Html(); 33$spreadsheet = $reader->loadFromString($excel_outdate); 34 35// レイアウト設定 36$objStyle = $sheet->getStyle('A1:G37')->getBorders(); 37$objStyle->getAllBorders()->setBorderStyle(Border::BORDER_THIN); 38//$sheet->setCellValue("A1", 'helloaaaa'); 39$fileName = "$target_month.xlsx"; 40 41// ダウンロード 42header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 43header('Content-Disposition: attachment;filename="'.$fileName.'"'); 44header('Cache-Control: max-age=0'); 45header('Cache-Control: max-age=1'); 46header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); 47header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); 48header('Cache-Control: cache, must-revalidate'); 49header('Pragma: public'); 50 51$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx'); 52$writer->save('write.xlsx'); 53 54// バッファをクリア 55ob_end_clean(); 56mb_http_output("pass"); 57 58$writer->save('php://output'); 59exit(); 60 61?>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/26 05:42 編集