由于PHPExcel早已停止更新维护,官方发布了新的版本PhpSpreadsheet,这个可以看做是PHPExcel的后续版本,最低要求为PHP7.2以上,咱们就以PHP7.2为例,看看是如何使用PhpSpreadsheet的。
使用composer将PhpSpreadsheet安装到项目中:(强烈推荐使用composer安装)
composer require phpoffice/phpspreadsheet
安装结果如上图这样,就算是安装成功了。
输入以下代码进行测试,即可看到结果:
require '../vendor/autoload.php'; //这里根据实际路径修改
function ReadExcel($inputFileName)
{
$whatTable = 0;
$filename = $inputFileName;
$inputFileType = \PhpOffice\PhpSpreadsheet\IOFactory::identify($filename);
// 实例化阅读器对象。
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType);
// 将文件读取到到$spreadsheet对象中
$spreadsheet = $reader->load($filename);
// 获取当前文件内容
$worksheet = $spreadsheet->getActiveSheet();
// 工作表总数
$sheetAllCount = $spreadsheet->getSheetCount();
// 工作表标题
for ($index = 0; $index < $sheetAllCount; $index++) {
$title[] = $spreadsheet->getSheet($index)->getTitle();
}
// 读取第一个工作表
$sheet = $spreadsheet->getSheet($whatTable);
// 取得总行数
$highest_row = $sheet->getHighestRow();
// 取得列
$highest_column = $sheet->getHighestColumn();
// 转化为数字
$highestColumnIndex = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::columnIndexFromString($highest_column);
for ($i = 1; $i <= $highestColumnIndex; $i++) {
for ($j = 1; $j <= $highest_row; $j++) {
$conent = $sheet->getCellByColumnAndRow($i, $j)->getValue();
$conent = $sheet->getCellByColumnAndRow($i, $j)->getCalculatedValue();
$info[$j][$i] = $conent;
}
}
var_dump($info);
}
ReadExcel('../Upload/002.xlsx'); //这是文件的路径
结果: