/** * @param ExcelFileAbstract $excel * * @return mixed */ public function exportUsersListBackEnd(ExcelFileAbstract $excel) { $user_can_see_env = cms_is_superadmin(); $this->setPresenter(new UserListExcelPresenter()); if (!$user_can_see_env) { // Force filter on current environment $this->filterEnvironments([\Environments::currentId()]); } $users = $this->with(['roles'])->all($this->fields); $nb_users = $this->count(); return $excel->setTitle(trans('users::backend.export.users_list.title'))->setCreator(Auth::user()->full_name)->setDescription(\Settings::get('cms.site.name') . PHP_EOL . \Settings::get('cms.site.description'))->sheet(sprintf(trans('users::backend.export.users_list.sheet_title'), date('Y-m-d H\\hi')), function ($sheet) use($users, $nb_users, $user_can_see_env) { /* * Header */ $header = ['#', trans('global.civility'), trans('global.last_name'), trans('global.first_name'), trans('global.email'), trans('global.birth_date'), trans('global.role_s')]; if ($user_can_see_env) { $header[] = trans('global.environment_s'); } $header[] = trans('global.addresse_s'); $sheet->prependRow($header); /* * Data */ // Append row after row 2 $sheet->rows($users['data']); // Append row after row 2 $sheet->appendRow($nb_users + 2, [sprintf(trans('users::backend.export.total_users'), $nb_users)]); /* * Style */ // Set black background $sheet->row(1, function ($row) { // Set font $row->setFont(['size' => '14', 'bold' => true])->setAlignment('center')->setValignment('middle'); }); // Freeze first row $sheet->freezeFirstRow(); $sheet->cells('A2:F' . ($nb_users + 2), function ($cells) { // Set font $cells->setFont(['size' => '12', 'bold' => false, 'wrap-text' => true])->setAlignment('center')->setValignment('middle'); }); $sheet->row($nb_users + 2, function ($row) { // Set font $row->setFont(['size' => '12', 'bold' => true])->setAlignment('center')->setValignment('middle'); }); })->export('xls'); }