]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Правки формирования таблицы
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Fri, 13 Dec 2024 08:53:42 +0000 (11:53 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Fri, 13 Dec 2024 08:53:42 +0000 (11:53 +0300)
erp24/controllers/UsersMessageManagementController.php

index 9e3f40b6ac10445a6a742e3bbeed4729161a4c6e..5e614c76860121d547a377adaa51d66ca133eb02 100644 (file)
@@ -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;