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表格实例相关推荐
- PHP 使用 PhpSpreadsheet 操作 excel 表格
1 . 使用 命令 : composer require phpoffice/phpspreadsheet 安装 PhpSpreadsheet 2.读取excel表格中的内容 <?php/*** ...
- python excel操作单元格_python 操作excel表格的方法
说明:由于公司oa暂缺,人事妹子在做考勤的时候,需要通过几个excel表格去交叉比对员工是否有旷工或迟到,工作量大而且容易出错. 这时候it屌丝的机会来啦,花了一天时间给妹子撸了一个自动化脚本. 1. ...
- 使用VC来操作Excel表格的源码
下面的代码段是关于使用VC来操作Excel表格的的代码,应该对小伙伴们也有用. if (CoInitialize(NULL) != 0) { AfxMessageBox("初始化COM支持库 ...
- android jxl.jar 使用,使用jxl.jar在Android中操作Excel表格——重中之重——对隐藏表的处理...
曾简单了解过C#,将Excel(数据库表)表中的数据导入到C#中,使用C#制作的图形化界面进行对Excel表中数据进行操作. 今天想试试,在Android中导入Excel表格进行操作.在网上查阅资料, ...
- 【web开发】☆★之利用POI操作Excel表格系列教程【6】遍历工作簙行和列取值
[web开发]☆★之利用POI操作Excel表格系列教程[6]遍历工作簙行和列取值 package com.xiaoye.demo; import java.io.FileInputStream; i ...
- java操作excel方法_Java实现操作excel表格的方法
Java开发人员开发的项目需要自动读取数据,其实我们还需要用程序处理Excel数据表,接下来爱站技术频道小编就为大家讲解Java实现操作excel表格的方法吧! 一:查 (查找本地指定位置的excel ...
- python openpyxl操作Excel表格
原创:未经允许不得转载,转载需标明出处 打算分为两个部分: 第一部分为:操作Excel表格 第二部分为:操作Excel图表 现在发布为第一部分内容 在最近的项目中的使用到了提取Android帧率日志, ...
- python操作xls_python操作excel表格的方法
这篇文章我们来讲一下在网站建设中,python操作excel表格的方法.本文对大家进行网站开发设计工作或者学习都有一定帮助,下面让我们进入正文. 说明:由于公司oa暂缺,人事妹子在做考勤的时候,需要通 ...
- Java 操作excel表格 - JXL(Java excel api)
Java 操作excel表格 Java 操作 Excel 最常用的就是JXL(Java excel api)和POI,用起来挺简单的,不过相应的其功能也并非很强大,够用就行! 首先,下载jxl.jar ...
最新文章
- opencv 行与列
- 什么是AngularJS?它有哪些特性?
- I2C驱动程序框架probe道路
- host is not allowed to connect mysql
- VS2013编译OBS源码
- c语言灯塔案例求塔低数,C++:有一个8层灯塔,每层所点灯数都等于该层上一层的两倍,一共有765盏灯,求塔底的灯数...
- Python 数据结构之栈的实现
- mysql介质故障_pciessd异常readonly致mysql反复crash
- Django运算表达式与Q对象/F对象
- VS2010/MFC设置对话框控件的Tab顺序
- 防火墙——NAT穿越(IPSec3)
- 飞思卡尔单片机KEA128之ADC学习
- 经纬度PLT文件格式说明
- Robomongo查询总条数
- 【时间序列分析】06. AR(p)序列的性质
- STM8S003串口printf及帧判断
- yum update和yum upgrade的真正区别
- git如何将本地分支关联到远程分支
- 手把手教你设置公众号菜单栏
- 目标跟踪之LTMU:High-Performance Long-Term Tracking with Meta-Updater环境配置及代码运行
热门文章
- 理解STP及端口角色状态
- 开放式激光振镜+运动控制器(四):PSO位置同步输出在激光振镜加工中的应用
- 一些常用的PKCS 标准
- java Object类型的参数
- 京瓷4501i打印机扫描步骤_京瓷TASKalfa4501i说明书
- CSS画几何图形系列
- JS常用工具函数-中文按拼音排序
- Google-Chubby架构
- 【已解决】在react+ts中 atnd 用 upload 组件报错Failed to execute ‘readAsArrayBuffer,param 1 is notof type Blob
- TFN T700系列吹缆机产品怎么样?好不好用?