调用未定义的方法 PhpOffice\PhpSpreadsheet\Spreadsheet

我想列出工作簿中的所有工作表名称,但出现以下错误:


Call to undefined method PhpOffice\PhpSpreadsheet\Spreadsheet::listWorksheetNames()


这是我的代码:


<?php

require_once('vendor/autoload.php');


use PhpOffice\PhpSpreadsheet\Reader\Xlsx;

use PhpOffice\PhpSpreadsheet\IOFactory;

 

$inputFileName = 'uploads/1.xlsx';

$spreadsheet = IOFactory::load($inputFileName);

$worksheetNames = $spreadsheet->listWorksheetNames();


echo '<h3>Worksheet Names</h3>';

echo '<ol>';

foreach ($worksheetNames as $worksheetName) {

    echo '<li>', $worksheetName, '</li>';

}

echo '</ol>';

?>

我尝试重复:https://phpspreadsheet.readthedocs.io/en/latest/topics/reading-files/#reading-only-named-worksheets-from-a-file


我的错误在哪里?


暮色呼如
浏览 438回答 1
1回答

MMMHUHU

尝试将第 8 行更改为$spreadsheet = IOFactory::createReader($inputFileName);.如果您查看文件IOFactory#L61,您将能够注意到它createReader返回一个Reader\IReader对象。另一方面,同一文件load中的函数返回一个Spreadsheet对象。函数listWorksheetNames属于 Readers,例如,您可以在Reader/Xlsx.php中看到。简单地说:您只能调用listWorksheetNamesReader 对象。
打开App,查看更多内容
随时随地看视频慕课网APP