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);" в моем случае это вызывало эту ошибку