phpspreadsheet
2019-5-9 8:20:07 星期四
昨天在看PHPExcel的时候, github上作者说已经停止更新了, 推荐使用phpspreadsheet,
查看了一下官方文档, 功能还挺强大的, 可以读取图表, 还可以读取格中使用了公式表计算的值, 而且是链式操作, 还使用了composer更新
简单写了一个小demo
安装
按照官网的命令, 先通过composer 把phpspreadsheet下载下来, 主要是使用autoload, phpspreadsheet有多层继承,抽象和接口
1. composer init
2. composer require phpoffice/phpspreadsheet
demo
include('D:/server/code/composer/vendor/autoload.php'); //将安装phpspreadsheet后的
use PhpOffice\PhpSpreadsheet\IOFactory;
$inputFileType = 'Xls';
$inputFileName = 'C:\Users\zhangzhibin\Downloads\PhpSpreadsheet-1.6.0\PhpSpreadsheet-1.6.0\samples\Reader\sampleData\example2.xls';
$reader = IOFactory::createReader($inputFileType);
$reader->setReadDataOnly(true); //只读取数据, 不读取其他东西
$worksheetData = $reader->listWorksheetInfo($inputFileName); //获取Excel中的所有表单的统计信息, 并不读取数据
foreach ($worksheetData as $worksheet) {
echo '表单名' . $worksheet['worksheetName'].'<br>';
echo 'Rows: ' . $worksheet['totalRows'] . ' Columns: ' . $worksheet['totalColumns'].'<br>';
echo 'Cell Range: A1:' . $worksheet['lastColumnLetter'] . $worksheet['totalRows'].'<br>';
}
//读取表单中的数据
try {
echo '加载前内存使用 '.strval(memory_get_usage(false)).'<br>';
$spreadsheet = IOFactory::load($inputFileName);
echo '加载后内存使用 '.strval(memory_get_usage(false)).'<br>';
foreach ($spreadsheet->getWorksheetIterator() as $worksheet) {
echo '表格名 - ' . $worksheet->getTitle().'<br>';
foreach ($worksheet->getRowIterator() as $row) {
echo ' 行号 - ' . $row->getRowIndex().' 当前使用内存:'.memory_get_usage(false).'<br>';
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false); // Loop all cells, even if it is not set
foreach ($cellIterator as $cell) {
if ($cell !== null) {
//echo '单元格 - ' . $cell->getCoordinate() . ' - ' . $cell->getCalculatedValue().'<br>';
echo '单元格 - ' . $cell->getCoordinate() . ' - ' . $cell->getValue().'<br>';
}
}
}
}
} catch (InvalidArgumentException $e) {
echo $e->getMessage();
}
phpspreadsheet的更多相关文章
- PhpSpreadsheet处理表格
介绍:PhpSpreadsheet是PHPExcel的下一个版本.它打破了兼容性,大大提高了代码库质量(命名空间,PSR合规性,最新PHP语言功能的使用等).由于所有努力都转移到了PhpSpreads ...
- phpspreadsheet导出数据到Excel
之前我们使用PHP导出Excel数据时使用的是PHPExcel库,但是phpoffice已经官方宣布PHPExcel已经被废弃不在维护,推荐使用phpspreadsheet,如下图所示 我们可以通过c ...
- PHP7 学习笔记(十二)PHPExcel vs PhpSpreadsheet and PHP_XLSXWriter
前言 PhpSpreadsheet是PHPExcel的下一个版本. 它打破了兼容性,极大地提高了代码库的质量(命名空间,PSR合规性,使用最新的PHP语言功能等).由于所有努力都转移到了PhpSpre ...
- php+phpspreadsheet读取Excel数据存入mysql
先生成Excel模板,然后导入Excel数据到mysql,每条数据对应图片上传到阿里云 <?php /** * Created by PhpStorm. * User: Administrato ...
- 详解PhpSpreadsheet设置单元格
PhpSpreadsheet提供了丰富的API接口,可以设置诸多单元格以及文档属性,包括样式.图片.日期.函数等等诸多应用,总之你想要什么样的Excel表格,PhpSpreadsheet都能做到. 在 ...
- 使用PhpSpreadsheet将Excel导入到MySQL数据库
本文以导入学生成绩表为例,给大家讲解使用PhpSpreadsheet将Excel导入的MySQL数据库. 准备 首先我们需要准备一张MySQL表,表名t_student,表结构如下: CREATE T ...
- TP5使用Composer安装phpoffice/phpspreadsheet,导出Excel文件
1.composer安装: composer require phpoffice/phpspreadsheet 2.点击导出按钮,触发控制器里面的方法 wdjzdc() 3. 在控制中引入 use P ...
- PhpSpreadsheet生成Excel时实现单元格自动换行
PhpSpreadsheet是PHPExcel的替代版本,PHPExcel的作者已经停止了更新,今天尝试了使用PhpSpreadsheet生成Excel的时候支持单元格内的自动换行,发现用法其实差不多 ...
- phpspreadsheet开发手记
坑安装简单示例通过模板来生成文件释放内存单元格根据索引获取英文列设置值合并单元格居中显示宽度设置批量设置单元格格式直接输出下载自动计算列宽函数formula单元格变可点击的超链 PhpSpreadsh ...
- 利用phpspreadsheet切割excel大文件
背景: 利用phpspreadsheet可以轻松的解析excel文件,但是phpspreadsheet的内存消耗也是比较大的,我试过解析将近5M的纯文字excel内存使用量就会超过php默认的最大内存 ...
随机推荐
- Win 8\10系统安装软件报错
一.问题 Win 8\10系统由于权限管理严格,右键管理员运行安装软件也会出现各种错误: 进度条走到20%闪退,报程序停止运行等等等等 二.解决思路 先确定软件路径安装在D盘(非系统盘). 开启超级管 ...
- Diagnostic Viewer 显示空白
MATLAB R2014a仿真出现错误后,查找错误时,Diagnostic Viewer 显示空白.网上查的一种解决方法.我的电脑是Windows7. 1.点击 所有程序>附件>记事本(以 ...
- DT系统开发之-在线询盘信息的调取实现
调用标签 <!--{tag("table=message&condition=status=3 and typeid=1&areaid=$cityid&cati ...
- 15、Python面向对象基础
和其它编程语言相比,Python 在尽可能不增加新的语法和语义的情况下加入了类机制. Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法 ...
- 解决关于VC++ 6.0打开文件时,程序停止的问题
不少boys和girls安装VC++ 6.0英文版后,开始学习C++语言,但是使用软件的过程中,点击“打开”时,就会出现程序进程错误,崩溃的事儿,很是郁闷.最后直接一个对话框如下: 并且vc6.0直接 ...
- 在函数内部定义的变量加与不加var的区别,匿名函数和有名函数内声明变量的区别
2014年4月21日,14:49分: 原创:http://www.cnblogs.com/liujinyu/p/3678523.html 今天写天气网英文版的产品频道,maps页面的js时,偶然意识到 ...
- springMVC(2)
SpringMVC_JSR303数据校验 1.需要加入hibernate validator验证框架 2.在springMVC配置文件中添加<mvc:annotation-driven/> ...
- Simple Redux
This is a post that tries to explain the the basics of Redux. We’ll build a minimal working example ...
- Generative Adversarial Networks overview(1)
Libo1575899134@outlook.com Libo (原创文章,转发请注明作者) 本文章会先从Gan的简单应用示例讲起,从三个方面问题以及解决思路覆盖25篇GAN论文,第二个大部分会进一步 ...
- kuma 学习一 minikube 安装
官方文档提供了比较全的环境安装说明 我使用的系统是mac,同时使用minikube 运行 安装kumactl 下载地址: https://kong.bintray.com/kuma/kuma-0.1. ...