次のような要件があります: インポート ボタン。ボタンをクリックして 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を使って歌詞進行テキストカラー塗りつぶし変更の動的効果を実装するアイデアの詳細な説明
最近、次のような効果を達成する必要がある最初は、CSS3D回転を使用して記述すると、次の効果しか得ら...
目次テクノロジースタック効果分析するテクノロジースタックサイドバー用Antdtabは要素を使用します...
表は以下のとおりです。 Unity が読み取って呼び出すときのコード: データベース内の別のテーブル...
フォーム内のフォーム フィールドが無効に設定されている場合、フォーム フィールドの値は送信されません...
目次1. 父と息子のコミュニケーション1.1 親コンポーネント --> 子コンポーネント1.2...
この記事では、お絵かきボード/サインボード機能を実現するためのJSキャンバスの具体的なコードを参考ま...
目次FormDataとは何ですか? vueとaxiosの協力による実践的な体験追加()セット()消去...
1. はじめにここでは apollo について詳しく説明しません。公式サイト https://git...
この記事では、Dockerを使用してMySQLデータベースとリモートアクセス構成をデプロイする方法を...
次のケースでは、これまでに学んだプロトタイプチェーンの知識ポイントを確認します。 // コンストラク...
1. HTML 画像 <img> 1. <img> タグとその src 属性...
目次echartの初期化アプリベースチャートコンポーネントhtml CS app-base-char...
1つ。 Nexus プライベート サーバーを構築する理由は何ですか?社内の開発メンバーは全員外部ネッ...
目次序文ブラウザJS非同期実行の原理ブラウザのイベントループ実行スタックとタスクキューマクロタスクと...
Windows10にmysqlをインストールする1. 公式サイトからMySQLをダウンロードするウェ...