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
网友评论