Excelアップロード機能を実現するVue + iViewの完全コード

Excelアップロード機能を実現するVue + iViewの完全コード

1. HTML部分

<Col span="2">ファイルをアップロード:</Col>
<Col span="22" class="uploadExcelBox">
    <アップロード ref="uploadExcel" :loading="uploadLoading" :action="uploadFileUrl" accept="xlsx,xls" :format="uploadFormat" :before-upload="beforeImgFile" :on-success="successImgFile" :on-error="errorImgFile" :show-upload-list="true">
         <Button type="success">添付ファイルをアップロード</Button>
	 </アップロード>
     <div v-if="uploadingFile !== null">アップロードするファイル:
          <span class="blueFont">{{ ファイル名 }}</span>
          <Button @click="uploadFun(index)" :loading="loadingStatus" class="manualUploadBtn">{{ loadingStatus ? 'アップロード中...' : 'クリックしてアップロードを開始' }}</Button>
      </div>
</Col>

2. JS部分

<スクリプト>
    // '@/libs/excel' から Excel をインポートします
	import service from '@/libs/request' //現在のドメイン名を取得するために使用します import reportFormApi from '@/api/reportForm'
    エクスポートデフォルト{
        データ() {
            戻る {
                uploadLoading:false, //アップロードコントロールの読み込みステータス uploadFileUrl: "",
				アップロードフォーマット:['xlsx','xls'],
				uploadingFile:null, //アップロードするファイル loadingStatus:false, //アップロードコンポーネントのステータス fileName:"", //アップロードするファイルの名前}
        },
        マウント() {
            this.uploadFileUrl = service.apiUrl + "/qingximaster/winInfo/execlAdd"; // バックエンド担当者が提供する、Excel をアップロードするためのインターフェイス パス。
        },
        メソッド: {
			// 画像をアップロードする前に beforeImgFile(file) {
				// console.log(ファイル);
				定数 fileExt = file.name.split('.').pop().toLocaleLowerCase()
				ファイル拡張子が 'xlsx' の場合 || ファイル拡張子が 'xls' の場合 {
					var フォームデータ = 新しい FormData();
					formdata.append("ファイル",ファイル);
                    this.fileName = formdata.get('file').name; //formdata.get('file') メソッドを使用すると、Excel ファイル名などのファイル内の情報を取得できます。
					this.uploadingFile = formdata; //注: これはアップロードするインターフェースにパラメータとして渡されます。インターフェイスに渡されるファイルには formdata.get('file') は必要なく、ファイルを直接渡すだけです。
				} それ以外 {
					this.$Notice.warning({
						タイトル: 「ファイルタイプエラー」
						説明: 'ファイル:' + file.name + 'EXCEL ファイルではありません。拡張子が .xlsx または .xls の EXCEL ファイルを選択してください。 '
					})
				}
				偽を返す
			},
			// アップロードに成功しました successImgFile(response, file, fileList) {
                this.$Notice.success({
                    タイトル: 「ヒント」
                    説明: 'アップロードに成功しました! '
                })
			},
			// アップロードに失敗しました errorImgFile(error, file, fileList) {
				this.$Notice.success({
                    タイトル: 「ヒント」
                    説明: 'アップロードに失敗しました! '
                })
				コンソール.log(エラー);
			},
			uploadFun(index){//Excel をアップロードするためのインターフェイスを呼び出す
				this.loadingStatus = true;
				reportFormApi.uploadExcel({
                    URL: this.uploadFileUrl、
                    ファイル: this.uploadingFile
                }).then(res =>{
					this.uploadingFile = null;
                    this.fileName = "";
                    (res.code==0)の場合{
                        this.infoList[index].content = JSON.stringify(res.data);
					    // console.log(this.infoList[index].content);
                        this.$Message.success("アップロードに成功しました!");
                    }それ以外{
                        this.$Message.error(res.message);
                    }
				}).finally(()=>{
					this.loadingStatus = false;
                    this.uploadLoading = false;
                })
			},
        }
    }

3. ページ効果は次の通りです

(1)ページのデフォルトの外観

(2)アップロードするExcelファイルを選択する

(3)「アップロード開始」をクリックした後

上記は、Excel アップロードを実現するための Vue + iView の詳細です。vue iview excel アップロードの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Vue ElementUI で Excel ファイルを手動でサーバーにアップロードする方法の詳細な説明
  • Vue Excel アップロード プレビューとテーブル コンテンツを Excel ファイルへダウンロード
  • Vue で Excel ファイルのアップロードとダウンロード機能を実装する 2 つの方法
  • Vue+Spring Bootを使用してExcelアップロード機能を実装する
  • vue iView アップロードコンポーネントの手動アップロード機能

<<:  MySQL マスター/スレーブ データベース同期構成と一般的なエラー

>>:  WIN10 に複数のデータベースがインストールされている場合にコンピュータの速度低下を防ぐ方法

推薦する

IE7でソースファイルを含むページを開くとページが空白になる問題の解決方法

質問:私のブログのエンコーディングは utf-8 です。ページを開くと空白になっていることもあります...

CSSはマウスが画像に移動したときにマスク効果を実現します

1.マスクレイヤーのHTMLコードと画像をdivに配置する.img_div に入れました。 <...

一意の注文番号を生成するためのMySQLの高同時実行方法

序文このブログ記事が公開された後、何人かの友人からSQL Serverバージョンがあるかどうか尋ねら...

MySQLにおけるビューの作成(CREATE VIEW)と使用制限の詳しい説明

この記事では、例を使用して、MySQL ビューの作成 (CREATE VIEW) と使用上の制限につ...

JavaScript でエラーが発生しやすい演算子操作の概要

目次算術演算子異常状況1: 特殊値リテラルを含む操作異常な状況 2: 他の種類のデータが数学演算に関...

Docker ログが多すぎてディスクがいっぱいになる場合の対処方法

複数の Docker コンテナがデプロイされたサーバーがあり、各 Docker コンテナが stde...

Reactのref属性を深く理解する方法

目次概要1. Refsオブジェクトの作成1.1 React.createRef() 1.2React...

MySQL で JSON 形式のフィールドをクエリする詳細な説明

作業開発プロセス中に、顧客の名前、携帯電話番号、ID カード、およびドキュメントの種類を動的に保存す...

Web フロントエンドのパフォーマンス最適化の詳細説明: リソースのマージと圧縮

2つの目的のためのリソースの結合と圧縮httpリクエストの数を減らす要求されたリソースのサイズを縮小...

MySQLの重複排除操作を極限まで最適化する方法

目次1. インデックスと変数の賢い使用1. インデックスなしの比較テスト2. created_tim...

VirtualBox で作成された Debian 仮想マシンは Windows ホストとファイルを共有します

用語: 1. VM: 仮想マシンステップ: 1. Windows 10 に VirtualBox 6...

JavaScript クロージャの説明

目次1. クロージャとは何ですか? 2. クロージャの役割2.1) メモリ2.2) プライベート変数...

MySQL シャーディング入門ガイド

序文リレーショナル データベースは、システムのボトルネックになる可能性が高くなります。単一のマシンの...

React.cloneElement の使い方の詳しい説明

目次cloneElementの役割使用シナリオ新しい小道具を追加するプロップを変更するイベントカスタ...

テーブルの幅を固定して、テキストによって幅が変わらないように設定

ページ内のテーブルの幅を width="600px" に設定した後も、幅が固定さ...