PhpOfficePhpSpreadsheet读取和写入Excel
发布时间:2025-05-22 01:21:14 发布人:远客网络
一、PhpOffice/PhpSpreadsheet读取和写入Excel
PhpSpreadsheet是一个纯PHP编写的组件库,它使用现代PHP写法,代码质量和性能比PHPExcel高不少,完全可以替代PHPExcel(PHPExcel已不再维护)。使用PhpSpreadsheet可以轻松读取和写入Excel文档,支持Excel的所有操作。
官网:
要使用PhpSpreadsheet需要满足以下条件:
现在开始,创建项目目录/PHPExcel,进入项目目录。
在项目目录下新建/public目录,在public目录下创建示例文件test.php,编辑test.php,用以下代码。
运行代码,你会发现在目录下生成一个hello.xlsx文件,打开Excel文件,你会看到Excel中的单元格A1中有“Welcome to Helloweba.”内容。当然你可以对单元格样式诸如颜色、背景、宽度、字体等等进行设置,这些会在接下来的几节中讲到。
支持读取.xls,.xlsx,.html,.csv等格式文件,支持写入导出.xls,.xlsx,.html,.csv,.pdf格式文件。
提供丰富的API,提供单元格样式设置、Excel表格属性设置、图表设置等等诸多功能。使用PhpSpreadsheet完全可以生成一个外观结构都满足你的Excel表格文件。
卓越的性能,尤其在PHP7上表现优异,比PHPExcel强大很多。
思路:使用PhpSpreadsheet读取Excel表格中的有用信息,然后组装成sql语句,最后批量插入到MySQL表中。
worksheet->getCellByColumnAndRow(col, row)->getValue()可以获取表格中任意单元格数据内容,col表示单元格所在的列,以数字表示,A列表示第一列,$row表示所在的行。
首先我们引入自动加载PhpSpreadsheet库,然后实例化,设置工作表标题名称为:学生成绩表,接着设置表头内容。表头分为两行,第一行是表格的名称,第二行数表格列名称。最后我们将第一行单元格进行合并,并设置表头内容样式:字体、对齐方式等。
我们连接数据库后,直接读取学生成绩表t_student,然后for循环,设置每个单元格对应的内容,计算总成绩。注意的是表格中的数据是从第3行开始,因为第1,2行是表头占用了。
然后,我们设置整个表格样式,给表格加上边框,并且居中对齐。
强制浏览器下载数据并保存为Excel文件
如想要保存为.xls文件格式的话,可以改下header代码:
PhpSpreadsheet提供了丰富的API接口,可以设置诸多单元格以及文档属性,包括样式、图片、日期、函数等等诸多应用,总之你想要什么样的Excel表格,PhpSpreadsheet都能做到。
第1行代码将A7至B7两单元格设置为粗体字,Arial字体,10号字;第2行代码将B1单元格设置为粗体字。
如果需要自动计算列宽,可以这样:
使用\n进行单元格内换行,相当于(ALT+"Enter"):
使用SUM计算B5到C5之间单元格的总和。其他函数同理:最大数(MAX),最小数(MIN),平均值(AVERAGE):
二、PhpSpreadsheet读取大excel时失败,小文件就可以为什么呀
1、失败是最后超时吗?对于大文件的读取,建议分片读取,就是采用协程来处理,这样可以占用很少的内存,也可以通过流的形式逐渐进行操作。
2、看你的操作是使用echo进行打印输出,这里就需要考虑php的ob缓冲区缓存,可以使用ob_flush进行缓存的输出,这样可以看到输出的结果。
三、php 读取excle的几种方法 比较
1、在PHP中,有多种方法可以读取Excel文件。下面是几种常见的方法:
2、PHPExcel库:PHPExcel是一个用于读取和写入Excel文件的PHP库。它支持多种Excel格式,并提供了大量的API,可以方便地操作Excel文件。然而,由于PHPExcel项目已经停止维护,建议使用PhpSpreadsheet代替。
3、PhpSpreadsheet库:PhpSpreadsheet是PHPExcel的后续版本,它是一个纯PHP库,可以读取和写入各种Excel格式。它也提供了类似于PHPExcel的API,并具有更好的性能和更好的可维护性。
4、PHP内置函数:PHP内置了一些函数,如fgetcsv()和fread(),可以读取CSV和纯文本格式的Excel文件。然而,对于复杂的Excel文件,这些函数可能无法正常工作。
5、第三方库:除了PHPExcel和PhpSpreadsheet之外,还有一些第三方库可以读取Excel文件,如PHPExcelWrapper和PHP-ExcelReader。这些库都有各自的特点和限制。
6、综上所述,使用PhpSpreadsheet是最佳选择,它是一个功能强大的库,能够读取和写入多种Excel格式,并提供了易于使用的API。