PhpSpreadsheet 是使用PHP语言编写的用户操作excel的类库,提供了一系列丰富的接口,可很方便的对文档属性、单元格进行操作,包括设置样式、图片、日期、函数等等。
PhpSpreadsheet用方法也很简单,示例如下:
一、使用PhpSpreadsheet进行excel操作,首先需要安装
composer require phpoffice/phpspreadsheet
二、引入PhpSpreadsheet类
use \PhpOffice\PhpSpreadsheet\Spreadsheet;use \PhpOffice\PhpSpreadsheet\IOFactory;use \PhpOffice\PhpSpreadsheet\Cell\Coordinate;use PhpOffice\PhpSpreadsheet\Style\Border;use PhpOffice\PhpSpreadsheet\Style\Alignment;
三、实例化PhpSpreadsheet
//实例化一个新的excel文档$newExcel = new Spreadsheet();//获取当前操作sheet的对象$objSheet = $newExcel->getActiveSheet();$date = date('Ymd',time());$name = '订单信息表';$objSheet->setTitle($name);//设置当前sheet的//设置表头$objSheet->setCellValue('A1', '单号') ->setCellValue('B1', '时间') ->setCellValue('C1', '联系人') ->setCellValue('D1', '手机号') ->setCellValue('E1', '支付金额');//设置表头样式$font = [ 'font' => [ 'bold' => true, 'size' => 13, ],];$objSheet->getStyle('A1:E1')->applyFromArray($font);
四、设置表格数据
$info = [数据数组];$dataCount = count($info);$k = 1;if($dataCount == 0){ exit;}else{ for ($i=0;$i<$dataCount;$i++){ $k = $k + 1; $objSheet->setCellValue('A' . $k, $info[$i]['order_type']) ->setCellValue('B' . $k, $info[$i]['addtime']) ->setCellValue('C' . $k, $info[$i]['name']) ->setCellValue('D' . $k, $info[$i]['faren']) ->setCellValue('E' . $k, " ".$info[$i]['shenfenzheng']) ; $objSheet->getStyle('A'.$k)->applyFromArray($styleArray); } $k = $k + 1; $extends = $lists['extend']; $objSheet->setCellValue('A' . $k, "这里是个合并单元格的示例"); //合并单元格 $objSheet->mergeCells('A' . $k.':E'.$k); //最后一行样式 $objSheet->getStyle('A'.$k.':'.'A'.$k)->applyFromArray([ 'font' => [ 'bold' => true, 'size' => 13, 'color'=>['argb' => '000000'] ], ]);}
五、设置表格样式
//默认行高$objSheet->getDefaultRowDimension()->setRowHeight(22);//设置宽度$objSheet->getColumnDimension('A')->setWidth(15); $objSheet->getColumnDimension('B')->setWidth(20); $objSheet->getColumnDimension('C')->setWidth(40); $objSheet->getColumnDimension('D')->setWidth(15); $objSheet->getColumnDimension('E')->setWidth(25);
六、执行保存或下载
ob_end_clean();ob_start();//设置文件扩展名, $format只能为 Xlsx 或 Xls$format='Xlsx';if ($format == 'Xlsx') { header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');} elseif ($format == 'Xls') { header('Content-Type: application/vnd.ms-excel');} header("Content-Disposition: attachment;filename=" . $name . '.' . strtolower($format));header('Cache-Control: max-age=0');$objWriter = IOFactory::createWriter($newExcel, $format);$objWriter->save('php://output');//通过php保存在服务器的时候需要用到//$objWriter->save($dir.'/demo.xlsx');exit;
以上就是Thinkphp6使用PhpSpreadsheet保存为Excel文件的使用方法 。
来源地址:https://blog.csdn.net/huafengjie/article/details/130186773