1. フロントエンド主導の実装手順最初のステップは、ページのインポートボタンをクリックしてExcelファイルを読み込むことです。 プラグインを使用して完了しました。 2番目のステップは、バックエンドの要件に応じてデータ形式を処理し、必要な形式に変換することです。 ロジックは自分で記述する必要があります。 3番目のステップは、バックエンドインターフェースを介してAjax経由でデータを送り返すことです。 インターフェースを調整し、通常の操作を実行します。 簡単に言うと、フロントエンドはExcelファイルを読み取り、ファイル形式を変更し、インターフェースを呼び出します。 2. Excelファイルを読む注: この手順により、フロントエンドのインポート機能を実現できます。フォーマットを変更する場合は、手順 3 に進みます。 概要: コードを自分のフォルダーにコピーし、必要なプラグインをダウンロードします。 2.1 elementUIが提供するvue-admin-elementのアップロード方法を使用する(Baiduウェアハウスのクローン方法、公式サイトにも掲載されている) 2.2 パッケージをダウンロードする npm install xlsx -S (デフォルトでは、手順 2.1 が完了しています) 2.3 UploadExcel コンポーネントを導入し、グローバルとして登録します ( グローバルコンポーネントの登録方法が分からない場合は、次のコードを参照してください。(main.js で行うこともできますが、保守性を高めるためにここで行います) './PageTools' から PageTools をインポートします './UploadExcel' から UploadExcel をインポートします。 エクスポートデフォルト{ // プラグインの初期化。プラグインが提供するグローバル関数はここで設定できます。install(Vue) { // コンポーネントのグローバル登録 Vue.component('PageTools', PageTools) // ツールバー コンポーネントを登録 Vue.component('UploadExcel', UploadExcel) // インポートされた Excel コンポーネントを登録 } } 2.4 コンポーネントを導入し、コンポーネントを使用し、ルートを構成し、クリックコールバック関数を設定する(これ以上の説明は不要) 2.5 テスト結果 ブラウザに設定したルーティングアドレスを手動で入力すると、ページがそのアドレスにジャンプします。 要約: 1. 最も重要なことは、必要なプラグインをコピーしてダウンロードすることです 2. UploadExcelコンポーネント(Excelファイルをインポートするため)を導入する必要がありますが、気分に応じてグローバルに登録する必要はありません。 3. コンポーネントをインポートし、コールバック関数を登録します。この関数内の 2 つのパラメータは必須です。理解を容易にするために、ソース コードを参照してください。 4. Excelインポートプラグインの本質:Excelを分析後にJSで認識できる通常のデータに変換し、データに対して任意の操作を実行できるようにします。 3. データを処理する注: このステップでは、実際に JavaScript を使用する能力をテストします。残念ながら、これは私にとっては難しくなく、今後も長い間難しいことはないと思います。 3.1 バックエンドに必要なフォーマット: 3.2 処理対象:
3.3 処理関数を個別にカプセル化する: /** * 結果 Excel テーブルの内容 // [ {'名前': 'Xiao Zhang', '携帯電話番号': '13712345678'}, {.....} ] // ターゲット // [ {'username': 'Xiao Zhang', 'mobile': '13712345678'}, {.....} ] */ transExcel(結果) { 定数ユーザーリレーション = { 「求人エントリー日」: 「timeOfEntry」、 「携帯電話番号」: 「携帯電話」, '名前': 'ユーザー名', 「訂正日」: 「訂正時刻」, '作業番号': 'workNumber', '部門': '部門名', 「雇用形態」: 「formOfEmployment」 } 結果を返します。map(item => { 定数オブジェクト = {} // 1. このオブジェクトのすべての属性名を取得します: ['name', 'phone number'] // 2. この配列を走査し、中国語名を通じて userRelations 内の対応する英語名を見つけ、値を保存します。const zhKeys = Object.keys(item) zhKeys.forEach(zhKey => { 定数 enKey = ユーザーリレーション[zhKey] // 時間形式の場合は変換します if (enKey === 'correctionTime' || enKey === 'timeOfEntry') { obj[enKey] = 新しい日付(formatExcelDate(item[zhKey])) } それ以外 { obj[enKey] = アイテム[zhKey] } }) オブジェクトを返す }) } handleSuccess({ 結果、ヘッダー }) { console.log('現在の Excel ファイルから読み取られた内容は', results) // 結果: [{参加日: 44502、名前: xxxx}] // ターゲット: // 結果: [{timeOfEntry: 44502, ユーザー名: xxxx}] // Excel から読み取ったフォーマットを処理する const arr = this.transExcel(results) console.log('変換後のフォーマットは', arr) }) 3.4 日付処理関数: // Excel ファイルの日付形式を標準時間に戻す // https://blog.csdn.net/qq_15054679/article/details/107712966 エクスポート関数formatExcelDate(numb, format = '/') { const time = new Date((数値 - 25567) * 24 * 3600000 - 5 * 60 * 1000 - 43 * 1000 - 24 * 3600000 - 8 * 3600000) 時間.setYear(時間.getFullYear()) 定数年 = time.getFullYear() + '' 定数月 = time.getMonth() + 1 + '' 定数日付 = time.getDate() + '' if (format && format.length === 1) { 年 + 形式 + 月 + 形式 + 日付を返す } 年 + (月 < 10 ? '0' + 月 : 月) + (日 < 10 ? '0' + 日付 : 日) を返します } 4. インターフェースを呼び出してリクエストを送信し、ページ内で使用する'@/api/employees' から { importEmployee } をインポートします。 エクスポートデフォルト{ 名前: 'インポート'、 メソッド: { 非同期handleSuccess({ 結果、ヘッダー }) { 試す { console.log('現在の Excel ファイルから読み取られた内容は', results) // 結果: [{参加日: 44502、名前: xxxx}] // ターゲット: // 結果: [{timeOfEntry: 44502, ユーザー名: xxxx}] const arr = this.transExcel(結果) console.log('変換後のフォーマットは', arr) //アップロードインターフェースを呼び出し、 const rs = importEmployee(arr) を待機します console.log('アップロードインターフェースを呼び出す', rs) // アップロードが成功したら、前のページに戻ります this.$router.back() this.$message.success('操作は成功しました') } キャッチ (エラー) { this.$message.error(err.message) } } } 5 要約:インポート機能はエクスポート機能と似ています。難しいのはデータ形式の変換です。この記事では詳しく紹介していませんが、別のエクスポート記事で詳しく説明しています。興味があれば、ぜひご覧ください。エクスポート機能の実装へジャンプするには、ここをクリックしてください。 Vue の Excel インポート機能の実装に関するこの記事はこれで終わりです。Vue の Excel インポートに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: VMware12 インストール centOS8 構成グラフィック チュートリアルの詳細説明 (vm 仮想マシン インストール centos8 チュートリアル)
>>: VMware に Centos8 をインストールする詳細なチュートリアル
MySQLをインストールしてメモしておきます。うまくインストールできるか分かりませんが、試してみます...
目次1. NFS-Ganeshaの紹介2. NFS-Ganeshaの設定3. NFS-Ganesha...
一言で言えば、大手メーカーからクラウド サーバーを購入する場合は、セキュリティ グループに移動して、...
RULES を使用すると、テーブルの内部境界のスタイルを制御できます。基本的な構文<TABLE...
まず、Tomcatフォルダを作成します。Dockerの設定を容易にするために、ルートディレクトリに直...
1. Apache 2.4.41 のインストールと設定最初のステップは、以下に示すように、https...
他の人のウェブページを保存して見たことがあると思いますが、特にdwで開くと、多くのウェブページに&l...
1. コマンドの紹介gzip (GNU zip) コマンドは、ファイルの圧縮と解凍に使用されます。こ...
1: MySqlをダウンロードする公式サイトのダウンロードアドレス: https://dev.mys...
他の種類のデザインとは異なり、Web デザインは時代の発展とともに常に変化しています。したがって、W...
世論調査の理解実際、ポーリングの焦点はループ自体ではなく、実行間の間隔にあります。 Ajax は非同...
この記事では、CentOS 7 環境でソース コードから MySQL 5.7 をインストールする方法...
HTML段落段落は <p> タグによって定義されます。例<p>これは段落で...
目次1. はじめに2. スケジューラの基本概念2.1. 実行キュー (rq) 2.2 スケジューリン...
目次1 ユーザー変数の概要2 ユーザー変数の定義3 ユーザー変数の使用3.1 セットを通した例3.2...