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

 1 include('D:/server/code/composer/vendor/autoload.php'); //将安装phpspreadsheet后的
 2 
 3 use PhpOffice\PhpSpreadsheet\IOFactory;
 4 
 5 
 6 $inputFileType = 'Xls';
 7 $inputFileName = 'C:\Users\zhangzhibin\Downloads\PhpSpreadsheet-1.6.0\PhpSpreadsheet-1.6.0\samples\Reader\sampleData\example2.xls';
 8 
 9 
10 $reader = IOFactory::createReader($inputFileType);
11 $reader->setReadDataOnly(true); //只读取数据, 不读取其他东西
12 $worksheetData = $reader->listWorksheetInfo($inputFileName); //获取Excel中的所有表单的统计信息, 并不读取数据
13 
14 foreach ($worksheetData as $worksheet) {
15     echo '表单名' . $worksheet['worksheetName'].'
'; 16 echo 'Rows: ' . $worksheet['totalRows'] . ' Columns: ' . $worksheet['totalColumns'].'
'; 17 echo 'Cell Range: A1:' . $worksheet['lastColumnLetter'] . $worksheet['totalRows'].'
'; 18 } 19 20 //读取表单中的数据 21 try { 22 echo '加载前内存使用 '.strval(memory_get_usage(false)).'
'; 23 $spreadsheet = IOFactory::load($inputFileName); 24 echo '加载后内存使用 '.strval(memory_get_usage(false)).'
'; 25 26 foreach ($spreadsheet->getWorksheetIterator() as $worksheet) { 27 echo '表格名 - ' . $worksheet->getTitle().'
'; 28 29 foreach ($worksheet->getRowIterator() as $row) { 30 echo ' 行号 - ' . $row->getRowIndex().' 当前使用内存:'.memory_get_usage(false).'
'; 31 32 $cellIterator = $row->getCellIterator(); 33 $cellIterator->setIterateOnlyExistingCells(false); // Loop all cells, even if it is not set 34 foreach ($cellIterator as $cell) { 35 if ($cell !== null) { 36 //echo '单元格 - ' . $cell->getCoordinate() . ' - ' . $cell->getCalculatedValue().'
';
37 echo '单元格 - ' . $cell->getCoordinate() . ' - ' . $cell->getValue().'
'; 38 } 39 } 40 } 41 } 42 } catch (InvalidArgumentException $e) { 43 echo $e->getMessage(); 44 }

 

转载于:https://www.cnblogs.com/iLoveMyD/p/10836389.html

你可能感兴趣的:(phpspreadsheet)