中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

yii2.0框架如何實現上傳excel文件后導入到數據庫

發布時間:2021-03-08 17:09:29 來源:億速云 閱讀:334 作者:TREX 欄目:開發技術

這篇文章主要講解了“yii2.0框架如何實現上傳excel文件后導入到數據庫”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“yii2.0框架如何實現上傳excel文件后導入到數據庫”吧!

Model模型

<?php
/**
 * 描述...
 * @author zcy
 * @date 2019/8/13
 */

namespace app\models;

use yii\base\Model;
use yii\db\ActiveRecord;
use yii\web\UploadedFile;

class uploadForm extends ActiveRecord
{
  public $file;

  public function rules()
  {
    return [
      [['file'],'file', 'skipOnEmpty' => false,'extensions' => 'xls,xlsx'],
    ];
  }

  public function attributeLabels()
  {
    return [
      'file'=> '上傳文件'
    ];
  }

  public function upload()
  {
    $file = UploadedFile::getInstance($this, 'file');

    if ($this->rules()) {
      $tmp_file = $file->baseName . '.' . $file->extension;
      $path = 'upload/' . 'Files/';
      if (is_dir($path)) {
        $file->saveAs($path . $tmp_file);
      } else {
        mkdir($path, 0777, true);
      }
      $file->saveAs($path . $tmp_file);
      return true;
    } else {
      return '驗證失敗';
    }
  }

}

Views視圖

<?php

use yii\widgets\ActiveForm;

$model = new app\models\uploadForm();
$form = ActiveForm::begin([
  'id' => 'upload',
  'options' => ['enctype' => 'multipart/form-data'],
])
?>

<?= $form->field($model,'file')->fileInput(['multiple'=>'multiple']) ?>

  <button>上傳</button>
<?php ActiveForm::end() ?>

Controller控制器

<?php
/**
 * 描述...
 * @author zcy
 * @date 2019/8/16
 */

namespace app\controllers;

use app\models\uploadForm;
use Yii;
use yii\web\Controller;
use yii\web\UploadedFile;

class UploadController extends Controller
{
  /**
   * 導入
   * @author zcy
   * @date 2019/8/16
   */
  public function actionImport()
  {
    $model = new uploadForm();

    if (Yii::$app->request->isPost) {
      $model->file = UploadedFile::getInstance($model,'file');
//      if ($model->upload()) {
//        print <<<EOT
// <script>alert('上傳成功')</script>
//EOT;
//      } else {
//        print <<<EOT
// <script>alert('上傳失敗')</script>
//EOT;
//      }
      if (!$model->upload()) {
        print <<<EOT
 <script>alert('上傳失敗')</script>
EOT;
      }
    }

    $ok = 0;
    if ($model->load(Yii::$app->request->post())) {
      $file = UploadedFile::getInstance($model,'file');

      if ($file) {
        $filename = 'upload/Files/' . $file->name;
        $file->saveAs($filename);

        if (in_array($file->extension,array('xls','xlsx'))) {
          $fileType = \PHPExcel_IOFactory::identify($filename);//文件名自動判斷類型
          $excelReader = \PHPExcel_IOFactory::createReader($fileType);

          $phpexcel = $excelReader->load($filename)->getSheet(0);//載入文件并獲取第一個sheet
          $total_line = $phpexcel->getHighestRow();//總行數
          $total_column = $phpexcel->getHighestColumn();//總列數

          if (1 < $total_line) {
            for ($row = 2;$row <= $total_line;$row++) {
              $data = [];
              for ($column = 'A';$column <= $total_column;$column++) {
                $data[] = trim($phpexcel->getCell($column.$row));
              }

              $info = Yii::$app->db->createCommand()
->insert('{{%shop_info}}',['shop_name' => $data[0],'shop_type' => $data[1]])
->execute();

              if ($info) {
                $ok = 1;
              }
            }
          }

          if ($ok == 1) {
            echo "<script>alert('導入成功');window.history.back();</script>";
          } else {
            echo "<script>alert('操作失敗');window.history.back();</script>";
          }
        }
      }
    } else {
      return $this->render('import',['model' => $model]);
    }
  }
}

感謝各位的閱讀,以上就是“yii2.0框架如何實現上傳excel文件后導入到數據庫”的內容了,經過本文的學習后,相信大家對yii2.0框架如何實現上傳excel文件后導入到數據庫這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

林口县| 郑州市| 荆州市| 泸水县| 临城县| 吴堡县| 长宁区| 花莲市| 奇台县| 苏州市| 宁夏| 英德市| 金溪县| 五峰| 东光县| 瓦房店市| 大冶市| 皋兰县| 木里| 无锡市| 贵州省| 民权县| 平利县| 青海省| 蒙山县| 修文县| 张家口市| 保定市| 曲靖市| 腾冲县| 饶河县| 昌图县| 黔西县| 应城市| 延边| 乐昌市| 偃师市| 乌苏市| 忻城县| 江华| 海门市|