ThinkPHP 6.0 phpspreadsheet操作Excel表格实例
生活随笔
收集整理的这篇文章主要介绍了
ThinkPHP 6.0 phpspreadsheet操作Excel表格实例
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
在 ThinkPHP 6.0 中实现 excel 导出功能,需要使用第三方扩展phpspreadsheet。
安装和导入导出就不再讲解了,可以看这两篇:
《ThinkPHP6 excel 导入功能完整实现》
《ThinkPHP6 excel 导出功能完整实现》
本文主要讲解如何操作Excel文件表格。
1.PhpSpreadsheet 官网
Welcome to PhpSpreadsheet's documentation - PhpSpreadsheet Documentation
2.加载依赖
use PhpOffice\PhpSpreadsheet\Spreadsheet;3.实例化
$spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet();4.获取工作薄
$spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setTitle('Sheet1');5.获取、设置单元格
// 获取单元格 $cell = $sheet->getCell('A1'); // 设置值 $cell->setValue('张三');// 获取单元格 $cell = $sheet->getCellByColumnAndRow(1,2); // 设置值 $cell->setValue('李四');// 设置单元格值(位置,值) $sheet->setCellValue('A1','ID'); $sheet->setCellValue('B1','姓名');// 设置单元格值(列,行,值) $sheet->setCellValueByColumnAndRow(1, 2, 1); $sheet->setCellValueByColumnAndRow(2, 3, '张三');6.设置文字样式
// 宋体 加粗 24号 $sheet->getStyle('A1')->getFont()->setName('宋体')->setBold(true)->setSize(24);7.文字颜色
$sheet->setCellValue('A1', '张三'); $sheet->setCellValue('A2', '张三'); $sheet->setCellValue('B1', '李四'); $sheet->setCellValue('B2', '李四');// RGB颜色获取和设置 $sheet->getStyle('A1')->getFont()->getColor()->setRGB('red'); $sheet->getStyle('A2')->getFont()->getColor()->setRGB('AEEEEE');// AGRB颜色获取和设置 $sheet->getStyle('B1')->getFont()->getColor()->setARGB('72ece9'); $sheet->getStyle('B2')->getFont()->getColor()->setARGB('blue');8.单元格格式
$sheet->setCellValue('A1','2023-2-21 10:10:10');$sheet->setCellValue('A2','199.98');$sheet->getStyle('A1')->getNumberFormat() ->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2);$sheet->getStyle('A2')->getNumberFormat() ->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00);9.设置超链接
$sheet->setCellValue('A1','CSDN'); $sheet->getCell('A1')->getHyperlink()->setUrl('https://blog.csdn.net/json_ligege');10.使用公式
$sheet->setCellValue('A1','名单'); $sheet->setCellValue('B1','分数');$sheet->setCellValueByColumnAndRow(1, 2, '张三'); $sheet->setCellValueByColumnAndRow(2, 2, '80');$sheet->setCellValueByColumnAndRow(1, 3, '李四'); $sheet->setCellValueByColumnAndRow(2, 3, '79');$sheet->setCellValueByColumnAndRow(1, 4, '王五'); $sheet->setCellValueByColumnAndRow(2, 4, '93');$sheet->setCellValueByColumnAndRow(1, 5, '赵六'); $sheet->setCellValueByColumnAndRow(2, 5, '68');$sheet->setCellValueByColumnAndRow(1, 6, '孙琦'); $sheet->setCellValueByColumnAndRow(2, 6, '89');$sheet->setCellValueByColumnAndRow(1, 7, '何八'); $sheet->setCellValueByColumnAndRow(2, 7, '90');$sheet->setCellValue('A8', '总数:'); $sheet->setCellValue('B8', '=SUM(B2:B7)'); $sheet->setCellValue('A9', '平均数:'); $sheet->setCellValue('B9', '=AVERAGE(B2:B7)'); $sheet->setCellValue('A10', '最小数:'); $sheet->setCellValue('B10', '=MIN(B2:B7)'); $sheet->setCellValue('A11', '最大数:'); $sheet->setCellValue('B11', '=MAX(B2:B7)');11.批量赋值
$sheet->setCellValue('A1', 'ID'); $sheet->setCellValue('B1', '姓名'); $sheet->setCellValue('C1', '性别'); $sheet->setCellValue('D1', '职业');// 参数(单元格数据,表示空白单元格的值,单元格开始位置) $sheet->fromArray([[1, '李云龙', '男', '军人'],[2, '苏乞儿', '男', '乞丐'],[3, '周星驰', '男', '导演'],[4, '林允儿', '女', '演员'],],6,'A2' );12.合并、拆分单元格
// 合并单元格 $sheet->mergeCells('A1:F1'); $sheet->setCellValue('A1','标题');// 拆分单元格 $sheet->mergeCells('A2:F2'); $sheet->unmergeCells('A2:F2');13.行操作
// 设置行高度 $sheet->getRowDimension(1)->setRowHeight(30); // 设置默认行高 $sheet->getDefaultRowDimension()->setRowHeight(20); // 获取行高度 echo $sheet->getRowDimension(1)->getRowHeight(); // 获取总行数 echo $sheet->getHighestRow();die;14.列操作
// 设置列宽度 $sheet->getColumnDimension('A')->setWidth(50); // 设置列自动宽度 $sheet->getColumnDimension('B')->setAutoSize(true); // 设置列默认宽度 $sheet->getDefaultColumnDimension()->setWidth(20); // 获取列宽度 echo $sheet->getColumnDimension('A')->getWidth(); // 获取总列数 echo $sheet->getHighestColumn();die;15.单元格样式
$sheet->setCellValue('A1', 'ID'); $sheet->setCellValue('B1', '姓名'); $sheet->setCellValue('C1', '性别'); $sheet->setCellValue('D1', '职业');$sheet->fromArray([[1, '李云龙', '男', '军人'],[2, '苏乞儿', '男', '乞丐'],[3, '周星驰', '男', '导演'],[4, '林允儿', '女', '演员'],],6,'A2' );$styleArray = ['alignment' => ['horizontal' => 'center', // 水平居中'vertical' => 'center', // 垂直居中],'font' => ['name' => '宋体','bold' => true,'size' => 22] ];$sheet->getStyle(1)->applyFromArray($styleArray);总结:
ThinkPHP 6.0 phpspreadsheet操作Excel表格实例到此为止,目前总结了这些常用的操作,更多需要可以查看官网文档;本来是想做一个通过模板导出Excel文件的功能,但是没找到怎么做,不过目前也可以达到我想要的效果了;先这样吧,如果后面实现了,就再写一篇。
借鉴文章:
PHP使用PhpSpreadsheet操作Excel实例详解 - 腾讯云开发者社区-腾讯云
总结
以上是生活随笔为你收集整理的ThinkPHP 6.0 phpspreadsheet操作Excel表格实例的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 关于CCNA的培训课程(1)-- 网络基
- 下一篇: php调用itunes.dll,解决iT