OverviewExport excel requirements. When you click to download the template or download the feedback results, axios initiates a backend interface request, and garbled characters appear when the returned data gets the response, as shown in the figure: The following are some treatment methods. 1. Download via URLThat is, the backend provides the address of the file and you can download it directly using the browser Download via window.location.href = file path window.location.href = `${location.origin}/operation/ruleImport/template` Via window.open(url, '_blank') window.open(`${location.origin}/operation/ruleImport/template`) The difference between these two usage methods:
2. Download through the a tag download attribute combined with the blob constructorThe download attribute of the a tag is a new addition to the HTML5 standard. Its function is to trigger the browser's download operation instead of navigating to the download URL. This attribute can be set to use a new file name when downloading. The front end creates a hyperlink and receives the file stream from the back end: axios.get(`/operation/ruleImport/template`, { responseType: "blob" //The data type of the server response, which can be 'arraybuffer', 'blob', 'document', 'json', 'text', 'stream', the default is 'json' }) .then(res => if(!res) return const blob = new Blob([res.data], { type: 'application/vnd.ms-excel' }) // Construct a blob object to process data and set the file type if (window.navigator.msSaveOrOpenBlob) { // Compatible with IE10 navigator.msSaveBlob(blob, this.filename) } else { const href = URL.createObjectURL(blob) //Create a new URL to represent the specified blob object const a = document.createElement('a') //Create the a tag a.style.display = 'none' a.href = href //Specify the download link a.download = this.filename //Specify the download file name a.click() //Trigger the download URL.revokeObjectURL(a.href) //Release the URL object } // You don't need to create a link here, you can also download it directly by calling window.open(href)}) .catch(err => { console.log(err) }) Note: When requesting the backend interface, add {responseType: 'blob'} to the request header; when setting the file name for download, you can directly set the extension. If not set, the browser will automatically detect the correct file extension and add it to the file. 3. Through js-file-download pluginInstall: npm install js-file-download --S use import fileDownload from 'js-file-download' axios.get(`/operation/ruleImport/template`, { responseType: 'blob' // data type returned}) .then(res => { fileDownload(res.data, this.fileName) }) The above is the details of how to download Excel stream files and set the download file name in Vue. For more information about downloading Excel stream files and setting the download file name in Vue, please pay attention to other related articles on 123WORDPRESS.COM! You may also be interested in:
|
<<: Graphic tutorial on installing the latest version of MySQL server on Windows 7 64 bit
>>: Solution to MySQL Installer is running in Community mode
Today, we use uniapp to integrate Echarts to disp...
Using Technology itext.jar: Convert byte file inp...
At work, we often need remote servers and often e...
Baidu Cloud Disk: Link: https://pan.baidu.com/s/1...
Kernel: [root@opop ~]# cat /etc/centos-release Ce...
Preface This article lists several common, practi...
When building a database and writing a program, i...
This article example shares the specific code of ...
Preface A Docker image consists of a Dockerfile a...
What is serdel userdel is a low-level tool for de...
I don’t know if you have ever encountered such a ...
as follows: -m, --memory Memory limit, the format...
1. Time difference functions (TIMESTAMPDIFF, DATE...
Preface In our daily work, we often need to renam...
Method 1: To use respin, follow these steps: sudo...