Vue エクスポート Excel 機能の全プロセス記録

Vue エクスポート Excel 機能の全プロセス記録

1. フロントエンドのリーディングプロセス:

1. ページ上のエクスポートボタンをクリックする(クリックイベントを登録する)

2. イベントコールバックでバックグラウンドデータのリクエストを送信する

3. 背景データを処理し、目的の効果を実現する

4. Excelファイルを生成する

2. プラグインの使用と初期化

2.1 vue-admin で提供されているメソッドを利用します。

プラグイン パッケージをコピーして、プロジェクトの src フォルダーに貼り付けます。

2.2 プラグインの依存関係をインストールします。

注意:エラーが報告される可能性が高くなります。この段階でのエラーは基本的に依存関係がインストールされていないことが原因です。すべてインストールしてください。

npm インストール ファイルセーバー スクリプトローダー --save

2.3 コールバック関数の内容は以下のとおりです

「エクスポート」ボタンを正式にクリックすると、ベンダー フォルダーに Export2Excel モジュールがロードされます。

正式に「エクスポート」ボタンをクリックすると、ベンダーフォルダのExport2Excelモジュールが読み込まれます。import('@/vendor/Export2Excel').then(excel => {
  // Excel はインポートされたモジュール オブジェクトを表します // import メソッドは実行後に promise オブジェクトを返します。
                                 // then メソッドでは、使用されるモジュール オブジェクトを取得できます console.log(excel)
  excel.export_json_to_excel({
    ヘッダー: ['name', 'salary'], // ヘッダーに必要なデータ: [
      ['Liu Bei', 100], //データの構成部分に注目すると、厳密な2次元配列が必要であることがわかります ['Guan Yu', 500]
    ], // 必要な特定のデータ filename: 'excel-list', // ファイル名 autoWidth: true, // 幅が適応的かどうか bookType: 'xlsx' // 生成されるファイルの種類 })
})

Excel エクスポート パラメータの説明

注: ここまでは、自分で書いた偽データを使用して、簡単なエクスポートエフェクトが完成しました。実際のプロジェクトでは、バックグラウンドから返されたデータを使用し、目的の効果が得られるようにフォーマットを変更する必要があります (テスト済みであり、上記の手順に従って完了できます)。効果は次のとおりです。

3. 背景データを処理し、目的の効果を実現する

たとえば、バックグラウンドによって返されるテーブル ヘッダーは英語であり、中国語に変換する必要がありますが、その形式はプラグインで必要な形式ではありません。

バックエンドの戻りデータ:

キーを中国語に変換し、値を配列にキャプチャする必要があります。

3.1 データ処理関数を準備する(最後のコールバックで使用されます)

3.2 最初にテーブルヘッダーを処理し、後で英語のヘッダーを中国語に変換するオブジェクトを定義します。

定数マップ = {
        'id': '番号',
        'パスワード': 'パスワード',
        'mobile': '携帯電話番号',
        'ユーザー名': '名前',
        'timeOfEntry': '求人エントリー日',
        'formOfEmployment': '雇用形態',
        'correctionTime': '訂正日',
        'workNumber': '作業番号',
        'departmentName': '部門',
        'staffPhoto': 'アバターアドレス'
      }

3.3 ヘッダーを定義する

header = [英語のヘッダーは後で配列の形式で中国語に変換されます]

効果は次のコードに示されています。

ヘッダー = ['id', 'mobile', 'username',……]

3.4 バックグラウンドリターンデータを処理する

背景は配列を返し、そのうちの 1 つを最初のデータとして定義します。目的は、最初のデータをサンプルとしてヘッダーを設定することです。最初のデータが false の場合、背景は何も返さず、再生全体が終了していることを意味します。

効果は次のコードに示されています。

定数 1 = リスト[0]
      もし(!1) {
        { ヘッダー、データ } を返す
      }

3.5 ヘッダー処理ロジック

01 `Object.keys(one) ` これはオブジェクトを走査し、キーを抽出して配列を形成します。

02 `map`メソッドは各項目を走査し、配列を返します

03 `return map[key]` は map.id = 'number' と見ることができます (理解しやすい)。map メソッドは map オブジェクトに対して処理を続け、map[key] は実際には 'number'、'department' などの値であり、次のような配列を形成します: ['name'、'salary']

ヘッダー = Object.keys(one).map(キー => {
        マップ[キー]を返す
      })

3.6 テーブルデータ処理ロジック

目的: 背景は、1 と 2 で表される正式な従業員と非公式な従業員を返します。数字をテキストに変換し、配列形式にする必要があります。

01-まず、バックエンドから返されるObj['formOfEmployment']は1、2の数字です。これらを---> 'formal'、'informal'にしたいのです。

02-obj['formOfEmployment'] = hireTypEnmu[key] このコードは、置換を実現するために、中国語の文字を左側の数字に設定することを意味します。左と右がそれぞれ何を表しているか見てみましょう。

03- obj['formOfEmployment']は現時点では数値です

04-hireTypEnmu:{1:'formal', '2':'informal'}これは私たちが独自に定義したオブジェクトです

05-hireTypEnmu[key] --keyは数字なので、その値は漢字になります

効果は次のコードに示されています。

// データはリスト内の各オブジェクトを対応する値の配列に変換します // hireTypEnmu:{1:'formal', '2':'informal' }
      データ = list.map(obj => {
        // Obj['formOfEmployment']: 1, 2 ---> 'formal'、'informal'
        const key = obj['formOfEmployment'] // 1, 2
        obj['formOfEmployment'] = hireTypEnmu[キー]
 
        Object.values(obj) を返します。
      })

3.7 関数の戻り値

処理されたデータを返す

{ ヘッダー、データ } を返す

3.8 最終完了

このとき、この関数をコールバック関数に取り込むと、ヘッダーとデータ データがすでに存在します。

完成したコードは次のとおりです。

hエクスポート() {
      import('@/vendor/Export2Excel').then(非同期Excel => {
        // データを取得するために Ajax リクエストを送信します const res = await getEmployee(this.page, this.size)
        定数リスト = res.data.rows
        console.log('バックエンドから取得したデータ', リスト)
 
        const { ヘッダー、データ } = this.formatData(リスト)
        // Excel はインポートされたモジュール オブジェクトを表します console.log(header, data)
        excel.export_json_to_excel({
          // ヘッダー: ['name', 'salary'], // ヘッダーは必須 ヘッダー: header, // ヘッダーは必須 データ: data,
          filename: 'excel-list', // ファイル名 autoWidth: true, // 幅が適応的かどうか bookType: 'xlsx' // 生成されたファイルの種類 })
      })
    },

要約:

上記のコードはテスト済みであり、効果を実現するために直接使用できます。

付録: vue-element-admin はコード クラウドから取得されました。このバージョンには、二次的な開発機能がさらに追加されています。

# git clone https://github.com/panjiachen/vue-element-admin.git # github からコードをプルします$ git clone https://gitee.com/mirrors/vue-element-admin.git # コードクラウドからプルします$ cd vue-element-admin # 特定のディレクトリに切り替えます$ npm install # すべての依存関係をインストールします$ npm run dev # 開発およびデバッグモードを開始します。起動コマンドを確認するには、package.json ファイル内のスクリプトを確認してください。

Vue の Excel エクスポート機能に関するこの記事はこれで終わりです。Vue の Excel エクスポート機能に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • VueはExcelテーブルをエクスポートする機能を実装します
  • VueプロジェクトでExcelをエクスポートする方法の詳細な説明
  • Vue で Excel テーブルをエクスポートするための実装コード
  • Vue フロントエンドの Excel ファイルのエクスポートの詳細な実装計画
  • vue.js で Excel テーブルをエクスポートするケース分析
  • Vue を使用して Excel をエクスポートする際の落とし穴と解決策
  • Vue を Excel にエクスポートする初心者向けの詳細なチュートリアル

<<:  MySQLのロックについて理解しておくべきこと

>>:  awk でのループの使用

推薦する

シングルサインオン制御を実装するためのVueの完全なコード

参考までに、Vue シングル サインオンのデモをご紹介します。詳細を知りたい方のお役に立てれば幸いで...

WindowsでcmdからDOSウィンドウに入り、MySQLデータベースにアクセスします。

1. win + R を押して cmd と入力し、DOS ウィンドウに入ります。 2. MySQL...

VMware 仮想マシンでの Centos8 ブリッジの静的 IP 設定方法

1. ネットワーク接続方法がブリッジされていることを確認する物理ネットワーク接続ステータスのコピーを...

モバイルインターネット時代: レスポンシブウェブデザインが一般的なトレンドに

今はモバイルインターネットが急速に発展している時代です。スマートフォンやタブレットはますます普及し、...

Vue で動的に追加されたルーティング ページの更新時に失敗する理由と解決策

目次問題の説明シナリオインターフェースリターンフロントエンドメニューの定義vuex のメソッド問題原...

Ubuntu 18.04 に opencv 3.2.0 をインストールするためのソリューション

opencv.zip をダウンロード依存関係を事前にインストールします。まずダウンロードソースを更新...

ReactにおけるuseRefの具体的な使い方

React の経験がある人なら、コンポーネントインスタンスオブジェクトや DOM オブジェクトを取得...

Vue 手書き読み込みアニメーション プロジェクト

ページが応答しない場合、白い画面が表示されないように、読み込みアニメーションを表示するのがユーザーフ...

Vueを使用して天気コンポーネントをロードする方法の詳細な説明

この記事では、Vueを使用して天気コンポーネントをロードする方法を参考までに紹介します。具体的な内容...

MySQL 8.0.13 手動インストールチュートリアル

この記事では、MySQL 8.0.13の手動インストールチュートリアルを参考までに紹介します。具体的...

IE6/IE7/IE8/IE9/FF 向け CSS ハック (概要)

IE8.0の正式版をインストールしたので、基本的なCSS HACKをいくつかまとめてみました。We...

この記事では、Vue 3.0 レスポンシブの使い方を説明します。

目次ユースケースリアクティブAPI関連プロセス反応的なcreateReactiveObjectはレス...

MySQL 数十億のデータのインポート、エクスポート、移行に関するメモ

最近はMySQLのメモをたくさん取っていますが、それは主に会社のOracleが比較的安定していてメン...

図を使ってWeb2.0とは何かを説明する

最近はWeb2.0という言葉をよく耳にしますが、Web2.0とは何でしょうか? Web 1.0 とど...

CentOS に Nginx をインストールする方法

公式ドキュメント: https://nginx.org/en/linux_packages.html...