Welcome to

Mr.Xiong

Home / Composer / PHP操作Excel

PHP操作Excel

一、引言

很多时候,我们需要将网站的数据导出生成 Excel 表格;或者,我们需要将外部的 Excel 表格数据导入到网站当中。此时就需要 PHP 开发工程师能够很好的使用 PHP 操作 Excel;这里我们就来聊聊如何部署代码。

二、安装 phpspreadsheet

进入 Composer 中文网 ,点开安装包列表,如下图。

Terminal 执行 composer require phpoffice/phpspreadsheet 进行安装。

三、环境检测并生成 Excel 表格

在项目根目录中创建 index.php 文件,并引入 vendor/autoload.php
环境检测,要求 PHP 版本>=5.6 :

p(PHP_VERSION);
p(extension_loaded('zip'));
p(extension_loaded('xml'));
p(extension_loaded('gd'));

生成一个基本的 Excel 表格:

use PhpOffice\PhpSpreadsheet\Spreadsheet;
$spreadsheet = new Spreadsheet();
//初始化Sheet对象
$sheet = $spreadsheet -> getActiveSheet();
//给对应单元格进行值的设置
$sheet ->setCellValue('A1','你好呀~')
       ->setCellValue('B2','我还好~');
$write = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$write ->save('hi.xlsx');

此时,你项目根目录当中将生成 hi.xlsx 文件,内容如下:

四、数据批量导入 Excel 表格

数据:

$data = [
   [
      'uid'=>1,
      'username'=>'Xiong',
      'nickname'=>'Mr.Xiong',
      'age'=>18,
   ],
   [
      'uid'=>2,
      'username'=>'Tracy McGrady',
      'nickname'=>'T-Mac',
      'age'=>39,
   ],
   [
      'uid'=>3,
      'username'=>'James Harden',
      'nickname'=>'MVB',
      'age'=>28,
   ],
   [
      'uid'=>4,
      'username'=>'Jason Statham',
      'nickname'=>'Muscle an',
      'age'=>50,
   ],
];

部署代码:

use PhpOffice\PhpSpreadsheet\Spreadsheet;
$spreadsheet = new Spreadsheet();
//设置第一个工作表为活动工作表
$spreadsheet -> setActiveSheetIndex(0);
//初始化Sheet对象
$sheet = $spreadsheet -> getActiveSheet();
//给对应单元格进行值的设置
$sheet -> setCellValue('A1','编号')
   -> setCellValue('B1','用户名')
   -> setCellValue('C1','昵称')
   -> setCellValue('D1','年龄');
//以数组形式给Excel表格填值 参数二默认值 参数三开始填充单元格的位置
$sheet -> fromArray($data,null,'A2');
$write = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$write -> save('hi.xlsx');

此时,你项目根目录当中将生成 hi.xlsx 文件,内容如下:

五、读取 Excel 表格数据

use PhpOffice\PhpSpreadsheet\IOFactory;
$inputFileName = 'hi.xlsx';
//读取文件
$spreadsheet = IOFactory::load($inputFileName);
$sheetData = $spreadsheet -> getActiveSheet() -> toArray();
p($sheetData);


Finally,谢谢大家的阅读!祝每天开心~
版权声明:本文为博主原创文章,未经博主允许不得转载。

赞赏

微信赞赏支付宝赞赏

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

雄心勃勃但谦卑温逊!

>> <<