フロントエンドページでエクスポート機能を実現するフロントバックグラウンドの組み合わせ
2815 ワード
1.リンクのダウンロード
データ、ファイルフォーマットは全部バックグラウンドでカプセル化して、前のリンクに戻ります.先端はリンクをクリックして自動的にダウンロードします.
このような方法は、バックグラウンドでエクスポートするファイルをファイルフローでフロントエンドに戻し、フロントエンドをblobで解析し、aタグを動的に作成することである.let content=res.data;/ファイルフローlet blob=new Blob([content])let fileName='filename.xls'
このような方式はバックグランドが対応するデータを提供すればよく、フロントエンドがフォームデータを動的に生成し、再フォーマットするということです.
データ、ファイルフォーマットは全部バックグラウンドでカプセル化して、前のリンクに戻ります.先端はリンクをクリックして自動的にダウンロードします.
(1)window.location.href = ‘url’
(2)
2.解析バックグラウンドから戻ってきたファイルストリームこのような方法は、バックグラウンドでエクスポートするファイルをファイルフローでフロントエンドに戻し、フロントエンドをblobで解析し、aタグを動的に作成することである.let content=res.data;/ファイルフローlet blob=new Blob([content])let fileName='filename.xls'
if ('download' in document.createElement('a')) { // IE
let link = document.createElement('a');
link.download = fileName;
link.style.display = 'none';
link.href = URL.createObjectURL(blob);
document.body.appendChild(link);
link.click();
URL.revokeObjectURL(link.href) ; // URL
document.body.removeChild(link);
} else { // IE10+
navigator.msSaveBlob(blob);
}
3.データを受信し、純先端を実現するこのような方式はバックグランドが対応するデータを提供すればよく、フロントエンドがフォームデータを動的に生成し、再フォーマットするということです.
let excel = '';
//
let row = '' +
'' +
'' +
'' +
'';
excel += row + '';
//
for(let i = 0 ; i < this.excelData.length ; i++ ){
excel += '';
for(let item in this.excelData[i]){
// \t
if (!this.excelData[i][item]) {
this.excelData[i][item] = '';
}
excel +=``;
}
excel +='';
}
excel += ' 1 2 3 ${ this.excelData[i][item] + '\t'}
';
//
var excelFile = '';
excelFile += '';
excelFile += '';
excelFile += '';
excelFile += '';
excelFile += '';
excelFile += '';
excelFile += excel;
excelFile += '';
excelFile += '';
//
let uri = 'data:application/vnd.ms-excelcharset=utf- 8,' + encodeURIComponent(excelFile);
let link = document.createElement('a');
link.href = uri;
link.style = 'visibility:hidden';
let myDate = new Date();
let time = myDate.toLocaleDateString().split('/').join('-');
link.download = 'fileName' + time + '.xls';
document.body.appendChild(link);
link.click();