欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > php >内容正文

php

ThinkPHP 6.0 phpspreadsheet操作Excel表格实例

发布时间:2023/12/29 php 35 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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表格实例的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。