+++ /dev/null
-<?php
-
-namespace yii_app\actions\motivation;
-
-use Yii;
-use yii\base\Action;
-use yii\base\DynamicModel;
-use yii\web\UploadedFile;
-use Box\Spout\Reader\Common\Creator\ReaderEntityFactory;
-
-class UploadXlsxAction extends Action
-{
- public function run() {
- $model = DynamicModel::validateData([
- 'myfile'
- ], [
- ['myfile', 'file', 'skipOnEmpty' => false, 'extensions' => 'xlsx'],
- ]);
-
- $sheets = [];
- if (Yii::$app->request->isPost) {
- $model->myfile = UploadedFile::getInstance($model, 'myfile');
- if ($model->myfile && $model->validate()) {
- $path = Yii::getAlias('@uploads') . '/' . date("YmdHis") . rand(1000, 9999) . "." . $model->myfile->extension;
- $model->myfile->saveAs($path);
- // read xlsx
- $reader = ReaderEntityFactory::createXLSXReader();
- $reader->open($path);
- foreach ($reader->getSheetIterator() as $sheetData) {
- $dataNum = 1;
- $sheet = ['rows' => [], 'vars' => []];
- foreach ($sheetData->getRowIterator() as $row) {
- $sheetRow = [];
- foreach ($row->getCells() as $cell) {
- if ($cell->getValue() == '###') {
- $dataNum = 2;
- break;
- }
- $sheetRow []= $cell->getValue();
- }
- switch ($dataNum) {
- case 1: { $sheet['rows'][] = $sheetRow; break;}
- case 2: { $sheet['vars'][] = $sheetRow; break;}
- }
- }
- $sheets []= $sheet;
- }
- $reader->close();
- }
- }
-
- return $this->controller->render('upload-xlsx',
- compact('model', 'sheets'));
- }
-}
\ No newline at end of file
public function actions() {
return [
'index' => \yii_app\actions\motivation\IndexAction::class,
- //'upload-xlsx' => \yii_app\actions\motivation\UploadXlsxAction::class,
'values' => \yii_app\actions\motivation\ValuesAction::class,
'create-value' => \yii_app\actions\motivation\CreateValueAction::class,
'update-value' => \yii_app\actions\motivation\UpdateValueAction::class,
+++ /dev/null
-<?php
-
-use yii\helpers\Html;
-use yii\base\DynamicModel;
-use yii\widgets\ActiveForm;
-
-/** @var $model DynamicModel */
-/** @var $sheets array */
-
-?>
-
-<div class="motivationUploadXlsx m-5">
-
- <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?>
-
- <div class="row">
- <div class="col-4 d-flex justify-content-between align-items-center gap-4">
- <div class="d-flex justify-content-around align-items-center gap-2">
- <div class="mb-3">Excel file:</div>
- <div style="display: inline-block"><?= $form->field($model, 'myfile')->fileInput()->label(false) ?></div>
- </div>
- <div class="d-flex justify-content-around align-items-center gap-2">
- <div class="mb-3"><?= Html::submitButton('Загрузить', ['class' => 'btn btn-success btn-sm'])?></div>
- </div>
- </div>
- </div>
-
- <?php ActiveForm::end() ?>
-
- <?php foreach ($sheets as $sheet): ?>
- <table border=1>
- <thead>
- <tr>
- <th>Num</th>
- <th>Nam</th>
- <th>Val</th>
- </tr>
- </thead>
- <tbody>
- <?php $dataNum = 1 ?>
- <?php foreach ($sheet as $key => $rows): ?>
- <?php foreach ($rows as $row): ?>
- <tr>
- <?php if ($key == 'vars' && $dataNum == 1) { $dataNum = 2; echo '<td>###</td>'; continue; } ?>
- <td><?= $row[0] ?></td>
- <td><?= $row[1] ?></td>
- <?php if ($key == 'rows'): ?>
- <td><?= $row[2] ?></td>
- <?php endif ?>
- </tr>
- <?php endforeach; ?>
- <?php endforeach; ?>
- </tbody>
- </table>
- <?php endforeach; ?>
-
-</div>