PhpOffice\PhpSpreadsheet Несколько рабочих листов не работают

Следующий код работает, только когда я комментирую лист Thrid, я вижу, что он открыт и просматривает содержимое, которое было вставлено, но когда я включаю третий лист, он не открывает файл, но показывает ошибку,can’t be opened for some reason.,

    $this->spreadsheet = new Spreadsheet;
    $this->spreadsheet->setActiveSheetIndex(0);
    $sheet = $this->spreadsheet->getActiveSheet();
    $sheet->setCellValue('A1', 'Hello world');
    $sheet->setTitle('First');

    $this->spreadsheet->createSheet();
    $this->spreadsheet->setActiveSheetIndex(1);
    $sheet = $this->spreadsheet->getActiveSheet();
    $sheet->setCellValue('A1', 'Hello');
    $sheet->setTitle('Second');

    $this->spreadsheet->createSheet();
    $this->spreadsheet->setActiveSheetIndex(2);
    $sheet = $this->spreadsheet->getActiveSheet();
    $sheet->setTitle('Third');


    $writer = new Xlsx($this->spreadsheet);
    $writer->setOffice2003Compatibility(true);
    $writer->save($fileName);

Пожалуйста, помогите мне решить это. https://github.com/PHPOffice/PhpSpreadsheet/(разработка) ветка

2 ответа

Согласно документации, вы можете попробовать следующее:

$reader =  \PhpOffice\PhpSpreadsheet\IOFactory::createReader("Xlsx");

$spreadsheet = $reader->load('<path>'); //Path of reader sheet    
// Create a new worksheet called "Name" in your case 3 Times
$myWorkSheet = new \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet($spreadsheet, 'Name');

// Attach the "Name" worksheet as the first worksheet in the Spreadsheet object
$spreadsheet->addSheet($myWorkSheet, 0);

Тогда вы можете назвать лист по имени

$spreadsheet->getSheetByName('Name');

попробуйте удалить или оставить комментарий "$writer->setOffice2003Compatibility(true);" в моем случае это вызывало эту ошибку

Другие вопросы по тегам