From: fomichev Date: Fri, 13 Dec 2024 08:53:42 +0000 (+0300) Subject: Правки формирования таблицы X-Git-Tag: 1.7~161^2~9 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=ad4e0124e5157a02a89325d3adefe6e70206c4e1;p=erp24_rep%2Fyii-erp24%2F.git Правки формирования таблицы --- diff --git a/erp24/controllers/UsersMessageManagementController.php b/erp24/controllers/UsersMessageManagementController.php index 9e3f40b6..5e614c76 100644 --- a/erp24/controllers/UsersMessageManagementController.php +++ b/erp24/controllers/UsersMessageManagementController.php @@ -4,6 +4,7 @@ namespace app\controllers; use PhpOffice\PhpSpreadsheet\Cell\Coordinate; use PhpOffice\PhpSpreadsheet\Spreadsheet; +use PhpOffice\PhpSpreadsheet\Writer\Xlsx; use Yii; use yii\base\DynamicModel; use yii\data\ArrayDataProvider; @@ -128,7 +129,6 @@ class UsersMessageManagementController extends Controller return $this->redirect(Yii::$app->request->referrer); } - $data = []; foreach ($users as $user) { $userPhone = $user['phone']; @@ -178,20 +178,15 @@ class UsersMessageManagementController extends Controller $sheet = $spreadsheet->getActiveSheet(); $sheet->setTitle('Users'); - $fields = array_keys($data[0]->getAttributes()); - - foreach ($fields as $index => $field) { - $column = Coordinate::stringFromColumnIndex($index + 1); - $sheet->setCellValue("{$column}1", $field); + foreach ($columns as $index => $column) { + $cell = Coordinate::stringFromColumnIndex($index + 1) . '1'; + $sheet->setCellValue($cell, $column); } - foreach ($data as $rowIndex => $user) { - foreach ($fields as $columnIndex => $field) { - $column = Coordinate::stringFromColumnIndex($columnIndex + 1); - $sheet->setCellValue( - "{$column}" . ($rowIndex + 2), - $user->$field - ); + foreach ($data as $rowIndex => $userData) { + foreach ($columns as $columnIndex => $column) { + $cell = Coordinate::stringFromColumnIndex($columnIndex + 1) . ($rowIndex + 2); + $sheet->setCellValue($cell, $userData[$column] ?? ''); } } @@ -204,7 +199,7 @@ class UsersMessageManagementController extends Controller $response->headers->add('Pragma', 'public'); ob_clean(); - $writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet); + $writer = new Xlsx($spreadsheet); $writer->save('php://output'); die;