PhpSpreadsheet是一个用纯PHP编写的库,并引入了命名空间,PSR规范等。

以下内容简单介绍一下PhpSpreadsheet的使用。

安装扩展

使用composer安装phpSpreadsheet

composer require phpoffice/phpspreadsheet

安装成功后会在vendor\phpoffice\phpspreadsheet目录下看到扩展文件。

引入扩展

在使用是根据命名空间引入phpspreadsheet扩展

use PhpOffice\PhpSpreadsheet\IOFactory;

读取数据

读功能支持文件后缀为Xlsx、Xls、’Xml、Ods、Slk、Html、Csv、Gnumeric类型的文件。

$file_name='E:\test1.xlsx';
$sheel=IOFactory::createReader('Xlsx');//创建读权限
$spreadsheet = $sheel->load($file_name);//指定要操作的文件
$sheet = $spreadsheet->getSheet(0);//设置读取工作簿,从0开始指定要读取的工作簿
$count = $sheet->getHighestRow();//获取最高工作表行
$value = $sheet->getCell('A1')->getValue();//读取单元格内容

写入数据

写功能支持文件后缀为Xlsx、Xls、Ods、Html、Csv、Gnumeric、Tcpdf、Dompdf、Mpdf类型的文件。

use PhpOffice\PhpSpreadsheet\Spreadsheet;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();//创建一个新的工作表
$sheet->setCellValue('A1', '1表格');//设置单元格内容
$sheel = IOFactory::createWriter($spreadsheet,'Xlsx');//写入
$sheel->save('E:\test1.xlsx');//输出到工作表(新建)

案例

结果:输出一个课程表格

输出效果:

相关代码:

use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\Style\Color;
use PhpOffice\PhpSpreadsheet\Style\Border;
use PhpOffice\PhpSpreadsheet\Style\Fill;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();//创建一个新的工作表$spreadsheet->getDefaultStyle()->getFont()->setName('微软雅黑'); //修改默认字体$sheet -> mergeCells('A1:F1'); //合并单元格$sheet -> setCellValue('A1', '课程表');//设置单元格内容//设置全局单元格内容居中
$styleArray_a1=['alignment'=>['horizontal'=>Alignment::HORIZONTAL_CENTER,//水平居中'vertical'=>Alignment::VERTICAL_CENTER,//垂直居中],
];
$sheet -> getStyle('A1:F12') -> applyFromArray($styleArray_a1);//设置表格顶部
$sheet->getStyle('A1:F1')->getFont()->setBold(true)->setName('黑体')->setSize(18);//设置A1:B1区域的字体为黑体加粗10px$sheet->getStyle('A1:F1')->getFont()->getColor()->setARGB(Color::NAMED_COLOR_TRANSLATIONS['Blue']);//设置单元格A1:F1字体颜色//设置表格主体标题
$styleArray = ['borders' => [//设置单元格边框'outline' => [//外边框'borderStyle' => Border::BORDER_THICK,'color' => ['argb' => '31869b'],],'inside' => [//内边框'borderStyle' => Border::BORDER_THIN,'color' => ['argb' => '3ba0b9'],]],'font'=>['name'=>'微软雅黑','bold'=>true,'size'=>'13','color'=>['argb' => Color::COLOR_WHITE]]
];
$sheet -> getStyle('A2:F2') -> applyFromArray($styleArray);$sheet -> getStyle('A2:F2') -> getFill()-> setFillType(Fill::FILL_SOLID)-> getStartColor() -> setARGB('31869b');//设置单元格背景色$rowArray=['星期一','星期二','星期三','星期四','星期五'];
$spreadsheet->getActiveSheet()->fromArray($rowArray, NULL,'B2');$sheet -> mergeCells('A4:A7'); //合并单元格
$sheet -> mergeCells('A8:A11'); //合并单元格$sheet -> setCellValueByColumnAndRow(1,3,'早自习');//设置单元格内容根据行和列赋值
$sheet -> setCellValueByColumnAndRow(1,4,'上午');//设置单元格内容根据行和列赋值
$sheet -> setCellValueByColumnAndRow(1,8,'下午');//设置单元格内容根据行和列赋值$sheet -> setCellValueByColumnAndRow(1,12,'晚自习');//设置单元格内容根据行和列赋值$sheet -> getDefaultColumnDimension() -> setWidth(14); //设置默认列宽为14$sheet -> getRowDimension('1') -> setRowHeight(35); //设置第1行高度为35
$sheet -> getDefaultRowDimension() -> setRowHeight(28); //设置默认行高为28$styleArray = ['borders' => ['outline' => [//外边框'borderStyle' => Border::BORDER_THICK,'color' => ['argb' => '7ec0d1'],],'inside' => [//内边框'borderStyle' => Border::BORDER_THIN,'color' => ['argb' => '99bec7'],]],
];
$sheet -> getStyle('A3:F12') -> applyFromArray($styleArray);//设置单元格边框$sheet -> getStyle('A3:F12') -> getFill()-> setFillType(Fill::FILL_SOLID)-> getStartColor() -> setARGB('e5faff');//设置单元格背景色$sheel = IOFactory::createWriter($spreadsheet,'Xlsx');//写入
$sheel -> save('E:\test1.xlsx');//输出到工作表(新建)

注:此工作表为新建工作表,如果此文件已存在会删除之后新建保存。

命令总结

注:get是获取,set为设置

  • 设置单元格的值

//方式一
$sheet -> getCellByColumnAndRow(1,2)->setValue('内容');//列,行
//方式二
$sheet -> getCell('A3')->setValue('郭靖');
//方式三
$sheet -> setCellValueByColumnAndRow(1,3,'早自习');//列,行
//方式四
$sheet -> setCellValue('A1', '课程\n表');
//设置文本里的\n符合为:换行
$sheet->getStyle('A1')->getAlignment()->setWrapText(true); 
  • 获取单元格的值

//方式一
$sheet->getCell('A1')->getValue();
//方式二
$sheet->getCell('A1')->getCoordinate();
  • 设置单元格文字样式

//方式一
$sheet->getStyle('B2')->getFont()->setBold(true)->setName('宋体')->setSize(20);
//方式二$styleArray = ['font'=>['name'=>'微软雅黑','bold'=>true,'size'=>'13','color'=>['argb' => Color::COLOR_WHITE]]
];
$sheet -> getStyle('A2:F2') -> applyFromArray($styleArray);
  • 设置单元格格式(日期时间)

//方式一
$sheet->getStyle('A2')->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberF
  • 单元格链接

//getHyperlink 获取单元格链接
//setUrl设置单元格链接
$sheet->getCell('A1')->getHyperlink()->setUrl('https://www.baidu.com/');
  • 批量设置单元格值

$arrayData = [[NULL, '语文', '数学', '英语'],['张一',   12,   15,   21],['张二',   56,   73,   86],
];
$sheet->fromArray($arrayData,NULL,'C2');//C2开始位置
  • 表格样式

$sheet -> getRowDimension(1) -> setRowHeight(35); //设置第1行高度为35
$sheet -> getColumnDimension('B')-> setAutoSize(true);//自动设置B列宽度
$sheet -> getDefaultRowDimension() -> setRowHeight(30); //设置默认行高为30
$sheet -> getDefaultColumnDimension() -> setWidth(10); //设置默认列宽为14
$sheet -> getColumnDimension('A') -> setWidth(14); //设置A列宽度为15
$sheet -> mergeCells('A4:A7');//合并单元格
$sheet -> unmergeCells('C3:G3'); //拆分单元格
//设置全局单元格内容居中
$styleArray_a1=['alignment'=>['horizontal'=>Alignment::HORIZONTAL_CENTER,//水平居中'vertical'=>Alignment::VERTICAL_CENTER,//垂直居中],
];
$sheet -> getStyle('A1:F12') -> applyFromArray($styleArray_a1);
  • applyFromArray 应用数组中的样式

    支持font、alignment、borders、fill、numberFormat、protection、quotePrefx的设置。

PhpSpreadsheet实现Excel操作相关推荐

  1. 使用PhpSpreadsheet将Excel导入到MySQL数据库

    使用PhpSpreadsheet将Excel导入到MySQL数据库 日常开发中,我们经常遇到这样的场景,需要将一个Excel表格数据如客户信息.学生成绩表导入到系统数据库中,然后在系统中进行进一步操作 ...

  2. PHP通过phpspreadsheet读取Excel文件

    PHP通过phpspreadsheet读取Excel文件 安装 通过 Composer 安装 composer require phpoffice/phpspreadsheet 读文件 三行代码解决E ...

  3. PhpSpreadsheet处理Excel 导入、导出并设置样式

    PhpSpreadsheet处理Excel PHPOffice 是一个用来处理办公相关软件的php类库 PhpSpreadsheet 专门处理excle的类库 导出如下: 引入类库 composer ...

  4. Qt之excel 操作使用说明

    学习背景: 适合熟悉些qt开发,但是不是深入了解的开发者学习.具体实现(qt 5.1版本),office2007 Excel做验证,Win 7(64位),如有讲解有误,欢迎斧正! 一.简单介绍 QAx ...

  5. python数据分析报告的格式_Python数据报表之Excel操作模块用法分析

    本文实例讲述了Python数据报表之Excel操作模块用法.分享给大家供大家参考,具体如下: 一 点睛 Excel是当今最流行的电子表格处理软件,支持丰富的计算函数及图表,在系统运营方面广泛用于运营数 ...

  6. python处理excel表格实例-通过实例学习Python Excel操作

    这篇文章主要介绍了通过实例学习Python Excel操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.python 读取Excel # -* ...

  7. python与excel做数据可视化-Python的Excel操作及数据可视化

    Excel表操作 python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库. 安装xlrd pip install xlrd 简单的表格读取 ...

  8. python对excel某一列去重-「总结篇」Python中所有的Excel操作技巧

    原标题:「总结篇」Python中所有的Excel操作技巧 Python对于Excel的操作是多种多样的,掌握了相关用法就可以随心所欲的操作数据了! 操作xls文件 xlrd(读操作): import ...

  9. python在excel中的应用-python中的excel操作

    一. Excel在python中的应用 存测试数据 有的时候大批量的数据,我们需要存到数据库中,在测试的时候才能用到.测试的时候就从数据库中读取出来.这点是非常重要的! 存测试结果 二. Excel中 ...

最新文章

  1. linux /etc/fstab文件参数求解释
  2. Python基础学习!基本元素,数字,字符串以及变量
  3. 双流棠湖中学怎么样_棠湖中学教师团队荣获四川省“最美教师团队”!
  4. 高并发负载均衡(三):LVS的DR模型试验搭建
  5. android动画详解
  6. 消息队列重要机制讲解以及MQ设计思路(kafka、rabbitmq、rocketmq)
  7. 最全的BI工具选型指南!给你五大箴言要记住
  8. 一个程序员的逗逼瞬间(四)
  9. 官方中文版开源!快速入门PyTorch
  10. 如何在 macOS Monterey 正式发布之前备份您的 Automator 作品?
  11. 如何使用离线网站,打开离线网站
  12. 阿里笔试算法题2021
  13. 百度地图API:自定义途经点路线拼接
  14. VMware下安装win7教程
  15. 喜马拉雅FM下载的音频转换为正常文件的JAVA实现
  16. 5G 核心网 Quality of Service Model (QoS Model)
  17. 数字签名与数字加密的区别
  18. 添加打印机,本地打印后台处理程序服务没有运行
  19. 谈 heuristic
  20. Linux中最危险的是个命令(很有趣呦~)(链接:http://os.51cto.com/art/201408/448756.htm)

热门文章

  1. 无头浏览器和抓取-解决方案
  2. JAVA计算机毕业设计晨光文具店进销存系统设计与开发计算机(附源码、数据库)
  3. [弱电工程] 视频监控存储空间的计算方法
  4. 4.15 使用渐变映射命令制作艺术效果 [原创Ps教程]
  5. PPT模板制作如何添加动画?
  6. MobaXterm全能终端神器(下载安装使用教程)
  7. 线上培训上课实录整站设计制作开发全能培训-彭亮-专题视频课程
  8. 多准则决策问题评估方法 | 层次分析法(含代码)
  9. 广东小学几年级有计算机课,广州小学开设网络班:小学生人手一台手提电脑
  10. 有关监控的前5名最佳书籍