雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

PHP 操作 Excel - phpoffice/phpspreadsheet 扩展包

2024-09-02 20

1. PhpSpreadsheet 简介2. PhpSpreadsheet 支持的文件格式3. PhpSpreadsheet 依赖的PHP版本4. 下载(引入) PhpSpreadsheet 扩展包5. 表格的三种操作方式(应用场景)6. 获取工作薄7. 获取单元格对象的两种方式8. 获取单元格的值和坐标9. 将表格保存在服务器上10. 设置单元格

1. PhpSpreadsheet 简介


PhpSpreadsheet 是一个用纯PHP编写的库,提供了一组类。使您可以读取和写入不同电子表格文件格式,并且提供了丰富的API接口,可以设置诸多单元格以及文档属性

2. PhpSpreadsheet 支持的文件格式


列出部分常用的,更多文件支持在官网看

官方文档:https://phpspreadsheet.readthedocs.io/en/latest

xlsxlsxcsvpdf

3. PhpSpreadsheet 依赖的PHP版本


PhpSpreadsheet 版本 PHP版本
v1.13.+ v7.2+
v1.10.0 ~ v1.12.0 v7.1

4. 下载(引入) PhpSpreadsheet 扩展包


当前最新版(v1.14.1 2020-08-21),要求PHP版本7.2.+

如果在PHP框架中需要引入该扩展包,需要在框架根目录执行该命令

composer require phpoffice/phpspreadsheet
<?php// 引入composer自动加载文件require 'vendor/autoload.php';// 进行 phpoffice/phpspreadsheet 操作

5. 表格的三种操作方式(应用场景)


最常用的是 ac

a. 读取表格(写入数据)b. 生成表格,并将表格保存在服务器上c. 生成表格,导出到客户端,相当于浏览器的下载(导出订单记录)

6. 获取工作薄


<?php// 引入composer自动加载文件require 'vendor/autoload.php';use PhpOffice\PhpSpreadsheet\Spreadsheet;// 获取Spreadsheet对象(电子表格对象)$spreadsheet = new Spreadsheet;// 获取活动工作薄(工作薄对象)$sheet = $spreadsheet->getActiveSheet();

7. 获取单元格对象的两种方式


// $sheet 是工作薄对象// 获取单元格的两种方式(返回单元格对象)// getCell(坐标) 示例: getCell('A2')// getCellByColumnAndRow(列数,行数) 示例: getCellByColumnAndRow(1, 2)$test1 = $sheet->getCell('A2');// 第一列第一行$test2 = $sheet->getCellByColumnAndRow(1, 2);var_dump($test1);var_dump($test2);

8. 获取单元格的值和坐标


getValue() - 获取单元格的值

// getValue() 获取单元格的值$cell = $sheet->getCell('A2');$cellValue = $cell->getValue();var_dump($cellValue);

getCoordinate() - 获取单元格的坐标

// getCoordinate() 获取单元格坐标$cell = $sheet->getCell('A2');$coordinate = $cell->getCoordinate();var_dump($coordinate);//'A2'

9. 将表格保存在服务器上


<?php// 引入composer自动加载文件require 'vendor/autoload.php';use PhpOffice\PhpSpreadsheet\Spreadsheet;use PhpOffice\PhpSpreadsheet\Writer\Xlsx;// 获取Spreadsheet对象(电子表格对象)$spreadsheet = new Spreadsheet;// 获取活动工作薄(工作薄对象)$sheet = $spreadsheet->getActiveSheet();// 设置单元格的值$sheet->getCell('A1')->setValue('123');// 表格保存在服务器上$writer = new Xlsx($spreadsheet);$writer->save('1.xlsx');

10. 设置单元格


一、setValue(单元格的值)

通过单元格对象调用,参数是单元格的值,返回单元格对象

$sheet->getCell('A1')->setValue('张三');

二、setCellValue(坐标,单元格的值)

通过工作薄对象直接调用,返回工作薄对象

$sheet->setCellValue('A1', '张三');

三、setCellValueByColumnAndRow(列数,行数,单元格的值)

通过工作薄对象直接调用,返回工作薄对象

$sheet->setCellValueByColumnAndRow(1, 1, '张三');
更新于:14天前
赞一波!

文章评论

全部评论