use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
+use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use Yii;
use yii\base\DynamicModel;
use yii\data\ArrayDataProvider;
return $this->redirect(Yii::$app->request->referrer);
}
-
$data = [];
foreach ($users as $user) {
$userPhone = $user['phone'];
$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] ?? '');
}
}
$response->headers->add('Pragma', 'public');
ob_clean();
- $writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
+ $writer = new Xlsx($spreadsheet);
$writer->save('php://output');
die;