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默认的最大内存 ...
随机推荐
- tensorflow批量读取数据
Tensorflow 数据读取有三种方式: Preloaded data: 预加载数据,在TensorFlow图中定义常量或变量来保存所有数据(仅适用于数据量比较小的情况). Feeding: Pyt ...
- flask项目
虚拟环境需要 pipenv install flask pipenv install flask-sqlalchemy pipenv install python-dotenv pipenv inst ...
- Linux怎么部署docker
Docker安装 建议在linux环境下安装Docker,window环境搭建比较复杂且容易出错,使用Centos7+yum来安装Docker环境很方便. Docker 软件包已经包括在默认的 Cen ...
- jmeter中设置线程数与设置集合点的区别
1.设置线程数: 表示10秒内启动50个线程, 运行结果如下:10秒内启动了50个线程 2.设置集合点: Number of Simulated Users to Group by:50,表示集合50 ...
- 团队项目评审&课程学习总结
一:实验名称:团队项目评审&课程学习总结 二:实验目的与要求 (1)掌握软件项目评审会流程: (2)反思总结课程学习内容. 三:实验步骤 任务一:按照团队项目结对评审名单,由项目组扮演乙方,结 ...
- uiwebview 离线缓存 图片
uiwebview 离线缓存图片
- jquery ajax在ie9下跨域不执行 crossDomain: true == !(document.all)
<!DOCTYPE html> <html> <head> <title>jQuery CORS in IE7 - IE10</title> ...
- 7.学习springmvc的异常处理
一.页面的异常处理流程 二.建立项目springmvc04_exception 1.编写index.jsp页面: <%@ page contentType="text/html;cha ...
- RFM客户价值分类
# 自定义好的包,亲测可用 原数据和代码思想来自以下网址 # https://github.com/joaolcorreia/RFM-analysis import datetime as dt im ...
- [CQOI2007]涂色paint(BZOJ 1260)题解
题目描述 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为5的字符串表示这个目标:RGBGR. 每次你可以把一段连续的木版涂成一个 ...