次のような要件があります: インポート ボタン。ボタンをクリックして Excel テーブルをインポートします。Excel テーブルの一部のデータのインポートに失敗した場合、失敗したデータの Excel テーブルが自動的にダウンロードされます。すべてのデータが正常にインポートされた場合、「インポートは成功しました」というメッセージが表示されます。 まず、ElementUIのアップロードファイルコンポーネントを添付します
1. ElementUIアップロードコンポーネントのアップロードを導入する<el-アップロード クラス="アップロードデモ" アクション="https://jsonplaceholder.typicode.com/posts/" 複数 :自動アップロード="false" :file-list="ファイルリスト" :on-change="ファイル変更"> <el-button type="primary">インポート</el-button> </el-アップロード> ページ効果 属性の紹介
2. インポートボタンをクリックしてファイルを選択します(変更時にトリガーするには「開く」をクリックします)この時点で、 ファイル変更(ファイル、ファイルリスト){ console.log(ファイル,'ファイル') console.log(ファイルリスト、'ファイルリスト') } 3. これで、選択したファイルがあり、アップロード方法をカスタマイズしてバックエンドサーバーに送信できます。ファイル変更(ファイル、ファイルリスト){ console.log(ファイル,'ファイル') console.log(ファイルリスト、'ファイルリスト') let url = 'xxx' //バックエンドサーバーAPI ヘッダーを{ 'Content-Type':'multipart/form-data' //カスタムアップロードの場合、このリクエストヘッダーパラメータは必須です} formData = '' とします for(let i = 0;i < fileList.length;i++){ // ファイル配列を走査します。fileList には複数のファイルがある可能性があります。formData = new FormData() formData.append('name',fileList[i].name) フォームデータ.append('type','.xlsx') formData.append('ファイル',fileList[i].raw) } this.$axios({ ヘッダー: ヘッダー、 メソッド: 'post'、 データ: フォームデータ、 URL: URL、 responseType:'blob' //このパラメータは必須です。そうでない場合、ダウンロードした Excel テーブルはファイルが破損しているため開けないというメッセージを表示します}).then(res=>{ res && res.data.size == 0 の場合{ //バックグラウンドでストリームが返されない場合は、すべてのデータが正常にインポートされたことを意味し、「インポートが成功しました」というプロンプトが表示されます。戻り値は自動的にダウンロードされません。 } //バックグラウンドがストリームを返す場合、一部のデータのインポートが失敗したことを意味し、失敗したデータの Excel テーブルが自動的にダウンロードされます。let name = 'Import failed data.xlsx' //ダウンロードする Excel テーブル名をカスタマイズします。let blob = new Blob([res.data]) url = window.URL.createObjectURL(blob) とします。 aLink = document.createElement('a') とします。 aLink.style.display = 'なし' aLink.href = URL //ダウンロード属性はダウンロード リンクのアドレスを定義します。 <a> タグ内に href 属性を指定する必要があります。 aLink.setAttribute('ダウンロード',名前) document.body.appendChild(リンク) リンクをクリックする() document.body.removeChild(リンク) window.URL.revokeObjectURL(url) //ダウンロードが完了した後、リストの更新、フレンドリーなプロンプトなど、他の操作を実行できます。}) } 方法分析
要約: 上記は、Excel テーブルのカスタム インポートを実装し、インターフェイスによって返されるストリームを自動的にダウンロードします。コードは直接使用できますが、返されるデータ 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: HTML と CSS を書くための 6 つの最も効果的な方法
>>: CSS3を使って歌詞進行テキストカラー塗りつぶし変更の動的効果を実装するアイデアの詳細な説明
目次JavaScriptでは、 forループを記述する一般的な方法がいくつかあります。最初の、そして...
mysql ストアド プロシージャの概念:特定のタスク (クエリと更新) を実行できる、データベース...
1. データベースをインストールする1) yum -y install mysql-server (...
1. WEBでサポートされている画像形式: GIF: 256色を保存でき、透明色をサポートし、アニメ...
<br />序文: このチュートリアルを読む前に、序文を注意深く読んでください。そうしな...
概要es6 では、配列またはオブジェクトから指定された要素を取得する新しい方法が追加されました。これ...
Unicode は、世界中のすべてのテキストと記号に対応できる国際組織によって開発された文字エンコー...
ここで、次のような項目をフォームに追加したいとします: 現在いる都市を参照します。ここで私たちが話し...
1. シェルスクリプトcrontab.shを書く #!/bin/bash step=1 #ステップ間...
nginx リバース プロキシを設定する場合、location と proxy_pass のスラッシ...
効果画像: 実装コード: <テンプレート> <div id="map&q...
まず、マージン崩壊が発生する 3 つの状況を見てみましょう。 1. 隣接する 2 つのブロックレベル...
マイグレーションアドバンテージ:小型、高速、総所有コストが低い、オープンソース。複数のオペレーティン...
目次1. コンテナ相互接続を実現するためにネットワークをカスタマイズする2. ネットワーク接続1. ...
目次ヘッドレスブラウザとは何ですか?なぜ「ヘッドレス」ブラウザと呼ばれるのでしょうか?ヘッドレスブラ...