phpexcel导出信息到excel

use PhpOffice\PhpSpreadsheet\Spreadsheet;

use PhpOffice\PhpSpreadsheet\Style\Alignment;

use PhpOffice\PhpSpreadsheet\Style\Color;

use PhpOffice\PhpSpreadsheet\Style\NumberFormat;

use PhpOffice\PhpSpreadsheet\IOFactory;

$spreadsheet = new Spreadsheet();

    $spreadsheet->getProperties()->setCreator("Sponsor")

      ->setLastModifiedBy("Sponsor")

      ->setTitle("Users of event")

      ->setSubject("Users")

      ->setDescription("Users of event which you choose")

      ->setKeywords("Users")

      ->setCategory("Users of event");

    $spreadsheet->setActiveSheetIndex(0);

    $spreadsheet->getActiveSheet()->setTitle('信息列表');

    $spreadsheet->getActiveSheet()->getRowDimension('1')->setRowHeight(25); //首行高度

    // 设置表格宽度

    $spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(25);

    $spreadsheet->getActiveSheet()->getColumnDimension('B')->setWidth(20);

    $spreadsheet->getActiveSheet()->getColumnDimension('C')->setWidth(20);

    $spreadsheet->getActiveSheet()->getColumnDimension('D')->setWidth(15);

    $spreadsheet->getActiveSheet()->getColumnDimension('E')->setWidth(20);

    $spreadsheet->getActiveSheet()->getColumnDimension('F')->setWidth(20);

    $spreadsheet->getActiveSheet()->getColumnDimension('G')->setWidth(20);

    $spreadsheet->getActiveSheet()->getColumnDimension('H')->setWidth(20);

    $arr1 = ['I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','AA','AB','AC','AD'];

    if(!empty($brr)){

      for($i=0;$i

        $spreadsheet->getActiveSheet()->getColumnDimension($arr1[$i])->setWidth(30);

        $flag1 = $arr1[$i].'1';

      }

    }

    // 列名表头文字加粗

    $spreadsheet->getActiveSheet()->getStyle('A1:'.$flag1)->getFont()->setBold(true);

    // 列表头文字居中

    $spreadsheet->getActiveSheet()->getStyle('A1:'.$flag1)->getAlignment()

      ->setHorizontal(Alignment::HORIZONTAL_CENTER);

    // 列名赋值

    $spreadsheet->getActiveSheet()->setCellValue('A1', '票种');

    $spreadsheet->getActiveSheet()->setCellValue('B1', '门票单价');

    $spreadsheet->getActiveSheet()->setCellValue('C1', '实际支付');

    $spreadsheet->getActiveSheet()->setCellValue('D1', '参与状态');

    $spreadsheet->getActiveSheet()->setCellValue('E1', '姓名');

    $spreadsheet->getActiveSheet()->setCellValue('F1', '联系电话');

    $spreadsheet->getActiveSheet()->setCellValue('G1', '是否验票');

    $spreadsheet->getActiveSheet()->setCellValue('H1', '报名时间');

    if(!empty($brr)){

      for($i=0;$i

        $spreadsheet->getActiveSheet()->setCellValue($arr1[$i].'1', $brr[$i]);

      }

    }

    // 数据起始行

    $row_num = 2;

    // 向每行单元格插入数据

    foreach($crr as $value)

    {

      // 设置所有垂直居中

      $spreadsheet->getActiveSheet()->getStyle('A' . $row_num. ':' .$flag1 . $row_num)->getAlignment()

        ->setHorizontal(Alignment::HORIZONTAL_CENTER);

      // 设置价格为数字格式

      $spreadsheet->getActiveSheet()->getStyle('B' . $row_num. ':' .'C' . $row_num )->getNumberFormat()

        ->setFormatCode(NumberFormat::FORMAT_NUMBER_00);

      // 设置单元格数值

      $spreadsheet->getActiveSheet()->setCellValue('A' . $row_num, $value['alias']);

      $spreadsheet->getActiveSheet()->setCellValue('B' . $row_num, $value['price']);

      $spreadsheet->getActiveSheet()->setCellValue('C' . $row_num, $value['pay_money']);

      $spreadsheet->getActiveSheet()->setCellValue('D' . $row_num, $value['status']);

      $spreadsheet->getActiveSheet()->setCellValue('E' . $row_num, $value['name']);

      $spreadsheet->getActiveSheet()->setCellValue('F' . $row_num, $value['mobile']);

      $spreadsheet->getActiveSheet()->setCellValue('G' . $row_num, $value['checked']);

      $spreadsheet->getActiveSheet()->setCellValue('I' . $row_num, $value['add_time']);

      if(!empty($brr)){

        for($i=0;$i

          $spreadsheet->getActiveSheet()->setCellValue($arr1[$i].$row_num, $value['value'.$i]);

        }

      }

      $row_num++;

    }

    $objWriter = IOFactory::createWriter($spreadsheet, 'Xls');

    $outputFileName = mb_substr($title,0,10).'活动名单_'.date('Ymdhis').'.xls';

    //输出到浏览器

    ob_end_clean();

    header('Content-Type: application/vnd.oasis.opendocument.spreadsheet');

    header('Content-Disposition: attachment;filename="'.$outputFileName.'"');

    header('Cache-Control: max-age=0');

// If you're serving to IE 9, then the following may be needed

    header('Cache-Control: max-age=1');

// If you're serving to IE over SSL, then the following may be needed

    header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past

    header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified

    header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1

    header ('Pragma: public'); // HTTP/1.0

    $objWriter->save('php://output');

    exit;

这是我写的一个导出用户报名活动的excel的部分代码,有对phpexcel的使用方法的示范作用

composer引入组件composer require phpoffice/phpspreadsheet

composer phpoffice查看文档地址:

https://packagist.org/packages/phpoffice/phpspreadsheet

你可能感兴趣的:(phpexcel导出信息到excel)