?>
1.まずrequireは
require_once "vendor/autoload.php";
で終わりです。 2.次に使用するクラスのuseをします
use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Cell; use PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\Style\Style; use PhpOffice\PhpSpreadsheet\Style\Border; use PhpOffice\PhpSpreadsheet\Style\Alignment; use PhpOffice\PhpSpreadsheet\Style\NumberFormat; use PhpOffice\PhpSpreadsheet\Worksheet\Drawing; use PhpOffice\PhpSpreadsheet\Writer\Xlsx as XlsxWriter;
などの必要な火クラスを書いてください。 3.次にシートを新規作成するかテンプレートをつかいます
$spreadsheet = new Spreadsheet();
とかけば、新規シートが作成されます。 use PhpOffice\PhpSpreadsheet\Spreadsheet;がないとエラーになります 4.シートの細かいプロパティは
$spreadsheet->getProperties()->setTitle("パスワード作成"); $sheet = $spreadsheet->getActiveSheet();
などのプロパティを書いてください。 5.テンプレートを読み込むには $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load('./template/TemFile.xlsx'); のように、ファイルをロードします。 6.その後、セルに値をセットするには
$i=3; for($x=1; $x<$nmax; $x++){ $a="A".$i; //セル位置 $b="B".$i; //セル位置 $c="C".$i; //セル位置 $i++; $sheet->setCellValue($a, '書き込む文字1'); $sheet->setCellValue($b, '書き込む文字2'); $sheet->setCellValue($c, '書き込む文字3'"); }
などのsetCellValue()をつかいます。 7.セルの範囲を指定して上下左右に罫線を反映するには
$sharedStyle = new Style(); $sharedStyle->applyFromArray([ 'borders' => [ 'bottom' => ['borderStyle' => Border::BORDER_THIN], 'right' => ['borderStyle' => Border::BORDER_THIN], 'top' => ['borderStyle' => Border::BORDER_THIN], 'left' => ['borderStyle' => Border::BORDER_THIN], ] ]); // セルの範囲を指定して罫線を反映 $spreadsheet->getActiveSheet()->duplicateStyle($sharedStyle, 'A1:CX');
などとduplicateStyleをつかいます。 8.セルの文字位置や色や幅は
// 文字位置 $spreadsheet->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT); // セルの背景色指定 黄色 $spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->setFillType('solid')->getStartColor()->setARGB('FFFFE400'); // セルの幅 $sheet->getColumnDimension('B')->setWidth(16);
のように各関数をつかいます。 9.最後に
$writer = new Xlsx($spreadsheet); //-------------------------------------------- //ブラウザへ出力をリダイレクト header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="PasswodFile.xlsx"'); header('Cache-Control: max-age=0'); $writer->save('php://output'); exit;
のようにエクセルを閉じて画面にだせば、ダウンロードされます。
↑ PAGE TOP