次のような要件があります: インポート ボタン。ボタンをクリックして 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 マスター・スレーブの読み取り・書き込み分離1.1 コア2 マスタースレーブレプリケーション2...
ページの自動スクロール効果は JavaScript で実現できますが、今日偶然、JS 制御なしでさま...
MySQL 5.7 を新しくインストールしました。ログインすると、パスワードが間違っているというメッ...
序文日常の開発では、テキストの水平スクロール効果(一般にカルーセルと呼ばれる)によく遭遇します。これ...
1. ウェブサイトのホームページのハイパーテキスト ドキュメントの構成構造は、ユーザーの注意をできる...
この記事では、参考のために、ミニプログラムでカスタムのマルチレベル単一選択および複数選択機能を実装す...
MySQL で判断文を書く方法:方法1. CASE関数case関数の構文: CASE条件 値1の場合...
目次序文: 1. Navicatの紹介2. シンプルなチュートリアルの共有接続管理ライブラリテーブル...
略語を使用すると、CSS ファイルのサイズが小さくなり、読みやすくなります。 CSS 省略形の主なル...
序文最近、プロジェクトを構築しているときに、リクエストのカプセル化について考え、どのようにカプセル化...
エラーメッセージ:エラー 1862 (HY000): パスワードの有効期限が切れています。ログインす...
BFCコンセプト:ブロック フォーマット コンテキストは、BFC 内の要素を外部の要素から分離する独...
1. Redisイメージを取得するdocker pull redis 2. それぞれポート6379、...
目次1. 前処理2. 前処理塗布方法A. 例: B. 実行計画の変更を追跡するための前処理C. スト...
お使いのコンピュータが Mac の場合、homebrew を使用して MySQL をインストールする...