<?php use PhpOffice\PhpSpreadsheet\Spreadsheet; // 实例化Spreadsheet对象 $spreadsheet = new Spreadsheet(); // 1获取活动工作薄 $sheet = $spreadsheet->getActiveSheet(); // 2获取单元格 $cell = $sheet->getCell('A1'); //方法1,左上顶点(A1) $cell = $sheet->getCellByColumnAndRow(1,1); //方法2,左上顶点(1,1) // 3给获取的单元格赋值 $cell->setValue('A1单元格内容'); // 3-1获取设置单元格,链式操作 $sheet->getCell('A3')->setValue('郭靖'); $sheet->getCellByColumnAndRow(1,4)->setValue('杨康'); // 3-2获取单元格 $cellA = $sheet->getCell('A1'); echo '值: ', $cellA->getValue(),PHP_EOL; echo '坐标: ', $cellA->getCoordinate(); //获取单元格坐标 // 4 Xlsx类 将电子表格保存到文件 $writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet); $writer->save('1.xlsx'); // 4-1 将表格直接输出下载 $filename = urlencode('文件名称.xlsx'); header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="'.$filename.'"'); header('Cache-Control: max-age=0'); $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx');//工厂类 $writer->save('php://output'); // 坐标单元格赋值 /** * 参数说明 * 设置单元格 * setCellValue(参数1,参数2) * 参数1:单元格位置左上顶点A1 * 参数2:单元格的值 */ $sheet->setCellValue('A1','ID'); $sheet->setCellValue('B1','姓名'); $sheet->setCellValue('C1','年龄'); $sheet->setCellValue('D1','身高'); /** * setCellValueByColumnAndRow(参数1,参数2,参数3) * 参数1:列位置,第一列值1 * 参数2:行位置,第一行值1 * 参数3:单元格的值 */ $sheet->setCellValueByColumnAndRow(1, 2, 1); $sheet->setCellValueByColumnAndRow(2, 2, '李雷'); $sheet->setCellValueByColumnAndRow(3, 2, '18岁'); $sheet->setCellValueByColumnAndRow(4, 2, '188cm'); $sheet->setCellValueByColumnAndRow(1, 3, 2); $sheet->setCellValueByColumnAndRow(2, 3, '韩梅梅'); $sheet->setCellValueByColumnAndRow(3, 3, '17岁'); $sheet->setCellValueByColumnAndRow(4, 3, '165cm'); /** * 赋值和类型,比如将数字指定为字符串格式,防止科学计数法显示 * Data types类型: * const TYPE_STRING2 = 'str'; * const TYPE_STRING = 's'; * const TYPE_FORMULA = 'f'; * const TYPE_NUMERIC = 'n'; * const TYPE_BOOL = 'b'; * const TYPE_NULL = 'null'; * const TYPE_INLINE = 'inlineStr'; * const TYPE_ERROR = 'e'; */ $sheet->getCell('A1')->setValueExplicit($value, \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING); $sheet->setCellValueExplicit('A1', $value, \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING); $sheet->setCellValueExplicitByColumnAndRow(1, 1, $value, \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING); /** * 单元格文字样式设置 */ // getStyle 获取单元格样式 // getFont 获取单元格文字样式 // setBold 设置文字粗细 // setName 设置文字字体 // setSize 设置文字大小 $sheet->getStyle('B2')->getFont()->setBold(true)->setName('宋体')->setSize(20); /** * 单元格文字颜色 */ // getColor 获取坐标颜色 // setRGB设置字体颜色 // getRGB 获取字体颜色 // setARGB 设置字体颜色 // getARGB 获取字体颜色 $sheet->getStyle('B2')->getFont()->getColor()->setRGB('#AEEEEE'); $sheet->getStyle('B3')->getFont()->getColor()->setARGB('FFFF0000'); /** *单元格格式 */ $sheet->setCellValue('A1','2019-10-10 10:10:10'); $sheet->setCellValue('A2','2019-10-10 10:10:10'); $sheet->getStyle('A2')->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2);
最新评论: