次のような要件があります: インポート ボタン。ボタンをクリックして 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を使って歌詞進行テキストカラー塗りつぶし変更の動的効果を実装するアイデアの詳細な説明
目次1. はじめに2. 利点3. 使用手順1. Vuexをインストールする2. Vuexを参照する3...
この記事はmysqlデータベースです質問 1 表 1 のデータを表 2 にインポートします。表 1 ...
1. 複製原理マスター サーバーはバイナリ ログ ファイルに更新を書き込み、ログのローテーションを追...
1. ネットワークマシンでは、デフォルトのcentosyumソースを使用します [root@kole...
現象システムは Linux システムカーネルを正常にコンパイルできましたが、SVN をインストールし...
MySQL でテーブルスペースの断片化を解消する詳細な例断片化の原因(1)テーブルのストレージは断片...
接続は、実際の外部キー(人工的に作成された 2 つのテーブル間の対応関係を指します。対照的に、FOR...
CentOS 7が正常にインストールされると、OpenJDKのJREがデフォルトでインストールされて...
SQL とは何ですか? SQL はデータベースを操作するために使用される言語です。 SQL はすべ...
この記事では、ネイティブ JS で実装されたブラインドの特殊効果を紹介します。効果は次のとおりです。...
美しい HTML コードの外観 美しい HTML コードの書き方。外国人が書いた記事: 美しい HT...
序文この記事はかなり詳細で、少し面倒です。他のチュートリアル ドキュメントでは多くの手順が省略されて...
目次序文keep-avlive フック関数keep-avliveはどのコンポーネントをキャッシュする...
echartsワードクラウドはechartsの拡張版ですhttps://echarts.apache...
目次1. v-text テキストレンダリング命令2. v-html 1. v-text テキストレン...