Excelエクスポート[ポスト+要求プロンプト] VUE

例外が発生した場合、一般的に、我々は輸出エクセル実現を直接リダイレクトまたはフォームの送信フォームが、背景され、メッセージはここで別の実装、POSTリクエストを使用することをお勧めします、非常にフレンドリーで、テキストの形で新しいウィンドウに表示され、カスタムエラーメッセージを渡すことができます。

ブロブを設定するためのフロントエンドaxios、responseType

それを聞かせ=この
のparams = { activitiesId:activitiesId、 のstartTime:のstartTime、 endTimeは:endTimeは } axios({ メソッド:' ポスト' URL:' / activityManage / exportExcel ' データ:paramsは responseType:' ブロブ' })。次いで、(RESP => { that.downloadFile(それぞれ、その) })。キャッチ(RESP => { こと。$のnotify.error(resp.msg|| ' エクスポート失敗しました' )}

新しいリンクを開き、[ダウンロード]ボタンを配置し、自動的にクリックするメソッドの実装をダウンロードしてください:

downloadFile(RESPは、それは){ 
      データましょう = resp.data
    // ここヘッダから取得したカスタムプロンプトプロンプト
    IF(resp.headers [ 'ERRORMSG'] ||!データ){ 
      (つまり。$のnotify.errorをdecodeURI(resp.headers [ 'ERRORMSG'])|| 'エクスポートが失敗した' )
      のリターン
    } 
      のlet URL = window.URL.createObjectURL(新新ブロブ([データ]))
      しましょうリンク =のdocument.createElement( 'A' 
      のリンク。 。style.display = 'なし' 
      link.href = URL
       // ファイル名が後端に設けられている 
      link.setAttribute( 'ダウンロード'、decodeURI( resp.headers [ 'ファイル名']))
      document.body.appendChild(リンク)
      link.click()
    }、

 

背景情報の設定は、ファイル名のファイル:

トライ{ 
    HSSFWorkbook HSSFWorkbook = 新しい新しいHSSFWorkbook()
    文字列errorMsg内容 = NULL ;  
      / * *      
     *データのカプセル化法は、その、ここでは無視優れ、カスタマイズ百度POI 
     *はヘッダに最後に、カスタム・エラー・メッセージ、および必要
     * = errorMsg内容"輸出例外:活性「は存在しません
     * / 
     文字列fileNameに Excelのエクスポートデータ=の」「;
         // 空の応答
        response.reset();
         //は、ヘッダーの応答を設定 
        Response.Addheader(」コンテンツ・処分「」添付ファイル;ファイル名= " URLEncoder.encode +(ファイル名、 "UTF-8" ));
     // メッセージ
     response.setHeader( "errorMsg内容"、URLEncoder.encode(errorMsg内容、 "UTF-8" )); 
        response.setHeader( "ファイル名"、URLEncoder.encode(ファイル名、 "UTF-8" )); 
        response.setContentType( "アプリケーション/ vnd.ms-エクセル;のcharset = 2312" )。
        OutputStreamのOS = なBufferedOutputStream(response.getOutputStream()); 
        hssfWorkbook.write(OS)。
     hssfWorkbook.close(); 
        os.flush(); 
        os.close(); 
  } キャッチ(例外e){ 
      log.error( "导出分析数据异常:" + E)。
      スロー 新しいのRuntimeException(e)を、

 

おすすめ

転載: www.cnblogs.com/nvsky/p/11532551.html