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 でのループの使用

推薦する

繰り返し送信、繰り返し更新、バックオフ防止に関する問題と解決策の分析

1つ。序文<br />この種の質問は、どの専門掲示板でも見かけます。Google で検索...

インタビューの質問: ホーリー グレイル レイアウトとダブル ウィング レイアウトの違い

序文今日は、聖杯レイアウトとダブルウィングレイアウト、そしてそれらの違いについてお話しします。この2...

ウェブページ上の小さなスペースに大きな画像を配置する方法

出典: www.bamagazine.comウェブページのバナー、ニュースの見出しの周りのスペース、...

Linuxはデュアルネットワークカードボンドとドライバーインターフェースを使用する

債券とは何かNIC ボンドは、実稼働シナリオでよく使用されるテクノロジーです。複数の NIC を 1...

nodejs で worker_threads を使用して新しいスレッドを作成する方法

導入前の記事で述べたように、NodeJS には 2 種類のスレッドがあります。1 つは、ユーザー リ...

nginxのデフォルトポートを変更する方法の詳細な説明

まず設定ファイルがどこにあるか調べる nginx.confはどこにありますかこれらのディレクトリを調...

Vueコンポーネントのカスタムイベントの詳細な説明

目次要約する <テンプレート> <div> 要素 <h2>{{メ...

Vueドロップダウンメニューのコンポーネント開発の詳細説明

この記事の例では、Vueドロップダウンメニューのコンポーネント開発の具体的なコードを参考までに共有し...

Vue のプロダクション環境と開発環境を切り替えてフィルターを使用する方法

目次1. 本番環境と開発環境を切り替える最初の方法: .envファイルを設定する2番目の方法2. フ...

Nginx 設定ファイルの詳細な説明と最適化の提案ガイド

目次1. 概要2. nginx.conf 1) 設定ファイルの場所2) ワーカープロセス3) イベン...

MySQL の列から行への変換と年月グループ化の例

以下のように表示されます。 SELECT count(DISTINCT(a.rect_id)) zc...

JavaScript ファクトリーパターンの説明

目次シンプルファクトリーファクトリーメソッド安全な工場方法アブストラクトファクトリー要約するシンプル...

MySQL データベースのインポートとエクスポートのデータ エラーの解決例の説明

データのエクスポートエラーを報告する 「secure_file_priv」のような変数を表示します。...

JavaScriptはクリックトグル機能を実装します

この記事の例では、クリックして切り替える機能を実装するためのJavaScriptの具体的なコードを参...

Linux の特別な権限 SUID、SGID、SBIT の詳細な説明

序文Linux のファイルまたはディレクトリの権限については、通常の rwx 権限についてすべて知っ...