Я столкнулся с проблемой с PhpSpreadsheet, из-за которой получаю сообщение об ошибке «Неверные координаты ячейки» при попытке экспортировать отчет Excel из проекта laravel,
В частности, с координатами типа «01». Я проверил свой код и убедился, что использую целочисленные индексы столбцов в setCellValueByColumnAndRow:
Вот полный код моего метода контроллера:
публичная функция getFestivalPlanRegister($id, $author = null) { если (запрос()->has('excel_export')){ $festival = $festival->where('festival_plan.fsp_condition_plan', '=', 'завершено'); } если (запрос()->has('excel_export')) { $spreadsheet = новая таблица(); $spreadsheet->setActiveSheetIndex(0)->setRightToLeft(true); $activeSheet = $spreadsheet->getActiveSheet(); $spreadsheet = новый \PhpOffice\PhpSpreadsheet\Spreadsheet(); $active_sheet = $spreadsheet->getActiveSheet(); $active_sheet->setRightToLeft(истина); $стиль = [ 'alignment' => ['horizontal' => Alignment::HORIZONTAL_CENTER], ]; // Определить строку и стиль заголовка $headerColumns = [ «Регистрационный идентификатор», «Код отслеживания проекта», «Название проекта на фарси», «Английское название проекта», «Раздел», «Ось», «Задача», «Имя ведущего автора», «Место исследования», «Ведущий автор». Контактный номер', «Электронная почта ведущего автора», «Адрес ведущего автора», «Почтовый индекс ведущего автора», «Ведущий автор». Автор Провинция', «Город ведущего автора», «Академический уровень ведущего автора», «Ведущий автор по образованию». Уровень', «Статус проекта», «Имя сотрудника», «Национальный идентификатор сотрудника», «Академический уровень сотрудника», «Уровень образования коллаборациониста», «Провинция коллаборациониста», «Коллаборационист Город», «Сотрудничающее образовательное учреждение», «Имя руководителя», «Контактный номер руководителя», «Электронная почта руководителя», «Национальное удостоверение руководителя», «Адрес руководителя», «Почтовый индекс руководителя», «Академический уровень руководителя», «Сфера обучения супервайзера», «Провинция супервайзера», «Город супервайзера», «Средний балл первого этапа», «Средний балл второго этапа», «Средний балл третьего этапа», «Статус» ]; $стиль = [ 'alignment' => ['horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER], ]; $строка = 1; // Применяем строку заголовка foreach ($headerColumns as $column => $header) { $activeSheet->setCellValue("{$column}{$row}", $header); $activeSheet->getStyle("{$column}{$row}")->applyFromArray($style); } $строка = 2; foreach ($festival как $item) { $activeSheet->setCellValueByColumnAndRow(1, $row, $item->fsp_code); $activeSheet->getStyleByColumnAndRow(1, $row)->applyFromArray($style); $activeSheet->setCellValueByColumnAndRow(2, $row, $item->fsp_id); $activeSheet->getStyleByColumnAndRow(2, $row)->applyFromArray($style); ... $строка++; } $filename = 'festival_report.xlsx'; header('Тип контента: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header("Content-Disposition: Attachment;filename=\"$filename\""); заголовок('Cache-Control: max-age=0'); $писатель = новый Xlsx($таблица); $writer->save('php://output'); умереть(); } вернуть $фестиваль; } И вот какую ошибку я получаю:
Неверная координата ячейки 01
Скриншот:

Пожалуйста, помогите мне с этой проблемой... Я действительно застрял на этом этапе!
Я все еще борюсь с этой ошибкой, я написал методы класса Spreadsheet.php здесь:
$spreadsheet = новая таблица(); $spreadsheet->setActiveSheetIndex(0)->setRightToLeft(true); $activeSheet = $spreadsheet->getActiveSheet(); публичная функция getActiveSheet() { вернуть $this->getSheet($this->activeSheetIndex); } общедоступная функция getSheet($pIndex) { if (!isset($this->workSheetCollection[$pIndex])) { $numSheets = $this->getSheetCount(); выбросить новое исключение( «Индекс запрошенного вами листа: {$pIndex} выходит за пределы. Фактическое количество листов — {$numSheets}». ); } вернуть $this->workSheetCollection[$pIndex]; } общедоступная функция getSheetCount() { return count($this->workSheetCollection); }
Мобильная версия