使用PhpSpreadsheet读取和写入Excel
原创文章 作者:月光光 2018年06月07日 22:25helloweba.net 标签:PHP
PhpSpreadsheet是一个纯PHP编写的组件库,它使用现代PHP写法,代码质量和性能比PHPExcel高不少,完全可以替代PHPExcel(PHPExcel已不再维护)。使用PhpSpreadsheet可以轻松读取和写入Excel文档,支持Excel的所有操作。
由于PHP操作Excel在我们项目开发过程中经常用到,所以我特意将PhpSpreadsheet的应用讲解分为4节内容,更加贴近我们的实际应用场景。这4节内容分别是:
- 1.初识PhpSpreadsheet
- 2.使用PhpSpreadsheet将Excel导入到MySQL数据库
- 3.使用PhpSpreadsheet将数据导出为Excel文件
- 4.详解PhpSpreadsheet设置单元格
本文先了解第1节内容。
软件依赖
要使用PhpSpreadsheet需要满足以下条件:
- PHP5.6或更改版本,推荐PHP7
- 支持php_zip扩展
- 支持php_xml扩展
- 支持php_gd2扩展
安装
现在开始,创建项目目录/PHPExcel,进入项目目录。
使用composer安装:
composer require phpoffice/phpspreadsheet
如何使用
在项目目录下新建/public目录,在public目录下创建示例文件test.php,编辑test.php,用以下代码。
<?php
require '../vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Welcome to Helloweba.');
$writer = new Xlsx($spreadsheet);
$writer->save('hello.xlsx');
运行代码,你会发现在目录下生成一个hello.xlsx文件,打开Excel文件,你会看到Excel中的单元格A1中有“Welcome to Helloweba.”内容。当然你可以对单元格样式诸如颜色、背景、宽度、字体等等进行设置,这些会在接下来的几节中讲到。
PhpSpreadsheet特性
支持读取.xls,.xlsx,.html,.csv等格式文件,支持写入导出.xls,.xlsx,.html,.csv,.pdf格式文件。
提供丰富的API,提供单元格样式设置、Excel表格属性设置、图表设置等等诸多功能。使用PhpSpreadsheet完全可以生成一个外观结构都满足你的Excel表格文件。
卓越的性能,尤其在PHP7上表现优异,比PHPExcel强大很多。

共7条评论
加载文件时显示乱码呀
如果excel文件设置了筛选,该怎么读取这个excel文件
确定性能好很多?PHPExcel里有的bug,这里一个没少,反而原本1分钟加载出来的文件,这里要3分钟
我用的是 xampp
composer require phpoffice/phpspreadsheet
之后没有看到 /vendor/autoload.php 文件
请问默认文件会到哪里?
@月光光 为什么我用读取url $spreadsheet = $reader->load('http://pcilpjnot.bkt.clouddn.com/car/execel_3ab8b717eb783080a9d48.xlsx'); //载入excel表格
会报错InvalidArgumentException in File.php line 137:
File 'http://pcilpjnot.bkt.clouddn.com/car/execel_3ab8b717eb783080a9d48.xlsx' does not exist.
https://www.helloweba.net/php/171.html 使用PHP导入和导出CSV文件,这篇文章写的挺好的。
请问PhpSpreadsheet读取csv文件怎么实现,我在phpexcel上完全正常的功能迁移到PhpSpreadsheet后要改的地方好多,而且读取不了csv文件