?>
PHPが7.xになってPhpSpreadsheetが正式にリリースされたことでPHPExcelは非推奨になりました。 PHPでExcelを操作する場合はPhpSpreadsheetを使ったほうがよさそうです。 しかし、情報が広まってきているところですが、まだまだ日本語サイトでの説明は少ないです。 インストール おなじみのcomposerでインストール(他の方の説明でも十分いけます) $composer require phpoffice/phpspreadsheet 以下のphpを実行して動作に必要なPHP拡張があるかチェックします。 コマンドで $php vendor/phpoffice/phpspreadsheet/samples/index.php ============================================= Requirement check: PHP 7.1.0 ... passed PHP7.1以上です PHP extension XML ... passed PASSです PHP extension xmlwriter ... passed PHP extension mbstring ... passed PHP extension ZipArchive ... passed PHP extension GD (optional) ... passed PHP extension dom (optional) ... passed これで環境はできました。 ここにあるように、php-xml、php-zip、php-pecl-zip、mbstring、GD、dom、libzip5など あらかじめ必要なものは入れておいてください。 ============================================= PHPのソースをおいて動作するかためしてみます。 A.Excelを出力(Sample1.php)するサンプル。
============================================= 1 <?php 2 require 'vendor/autoload.php'; 3 use PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder; 4 use PhpOffice\PhpSpreadsheet\Cell\Cell; 5 use PhpOffice\PhpSpreadsheet\Spreadsheet; 6 use PhpOffice\PhpSpreadsheet\Writer\Xlsx; 7 use PhpOffice\PhpSpreadsheet\Style\NumberFormat; 8 use PhpOffice\PhpSpreadsheet\Style\Borders; 9 use PhpOffice\PhpSpreadsheet\Worksheet\Drawing; 10 // スプレッドシートを作成 11 $spreadsheet = new Spreadsheet(); 12 // ファイルのプロパティを設定 13 $spreadsheet->getProperties() 14 ->setTitle("タイトル"); 15 // シート作成 16 $spreadsheet->getActiveSheet('sheet1')->UnFreezePane(); 17 $sheet = $spreadsheet->getActiveSheet(); 18 $sheet->setTitle("シートタイトル"); 19 // 値を設定 20 $sheet->setCellValue('A1', 'Title'); 21 $sheet->setCellValue('B1', 'Data'); 22 // テキストの中央寄せ 23 $sheet->getStyle('A1:B1')->applyFromArray(['alignment' =>['horizontal'=>Alignment::HORIZONTAL_CENTER]]); 24 // 枠線を設定 25 $sheet->getStyle('B1')->getBorders()->getOutline()->setBorderStyle(Border::BORDER_THIN); 26 // 列の横幅を設定 27 $sheet->getColumnDimension('B')->setWidth(8); 28 // セルを連結 29 $sheet->mergeCells('B1:C1'); 30 // バッファをクリア 31 ob_end_clean(); 32 $fileName = "sample.xlsx"; 33 // ダウンロード 34 header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 35 header('Content-Disposition: attachment;filename="'.$fileName.'"'); 36 header('Cache-Control: max-age=0'); 37 // 38 $writer = new Xlsx($spreadsheet); 39 //画面に出力 40 $writer->save('php://output'); 41 exit(); 42 ?> =============================================
↑ PAGE TOP