导出数据(.csv)

<template>
		<a-button
		   @click="exportVirtual"
		   style="margin-right:25px;background-color:#6CC14E;border-			      color:#6CC14E;color: #fff"
		>
		  <i style="margin-right:10px;" class="el-icon-upload2"></i>
		  全部导出
		</a-button>
</template>
<script>
        downloadJSON2CSV(objArray){
            var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
              //console.log('array',array)
            this.str = 'createBy,createTime,description,evacuateNodeName,hostUuid,installationSource,isDelete,memSize,memUnit,mirrorName,name,operatingSystemSeries,operatingSystemVersion,platform,preferHostUuid,priority,runningTime,shortHostAddress,sourceType,status,updateBy,updateTime,uuid,vcpuCount,virtualMachineIpAddress,xattr1,xattr2,xattr3'+ '\r';
    
            for (var i = 0; i < array.length; i++) {
                var line = '';
    
                for (var index in array[i]) {
                    line += array[i][index] + ',';
                }
 
            // 添加双引号
            // for (var index in array[i]) {
            //    line += '"' + array[i][index] + '",';
            // }
 
            line.slice(0,line.Length-1);
 
            this.str += line + '\r';
            }
            
        },
       SaveAs(fileName, csvData) {
            var bw = this.browser();
            if(!bw['edge'] && !bw['ie']) {
                var alink = document.createElement("a");
                alink.id = "linkDwnldLink";
                alink.href = this.getDownloadUrl(csvData);
                document.body.appendChild(alink);
                var linkDom = document.getElementById('linkDwnldLink');
                linkDom.setAttribute('download', fileName);
                linkDom.click();
                document.body.removeChild(linkDom);
            }
            else if(bw['ie'] >= 10 || bw['edge'] == 'edge') {
                var _utf = "\uFEFF";
                var _csvData = new Blob([_utf + csvData], {
                    type: 'text/csv'
                });
                window.navigator.msSaveBlob(_csvData, fileName);
            }
            else {
                var oWin = window.top.open("about:blank", "_blank");
                oWin.document.write('sep=,\r\n' + csvData);
                oWin.document.close();
                oWin.document.execCommand('SaveAs', true, fileName);
                oWin.close();
            }
        },
       getDownloadUrl: function(csvData) {
            var _utf = "\uFEFF"; // 为了使Excel以utf-8的编码模式,同时也是解决中文乱码的问题
            if (window.Blob && window.URL && window.URL.createObjectURL) {
                var csvData = new Blob([_utf + csvData], {
                    type: 'text/csv'
                });
                return URL.createObjectURL(csvData);
            }
        },
        browser() {
                var Sys = {};
                var ua = navigator.userAgent.toLowerCase();
                var s;
                (s = ua.indexOf('edge') !== - 1 ? Sys.edge = 'edge' : ua.match(/rv:([\d.]+)\) like gecko/)) ? Sys.ie = s[1]:
                    (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
                    (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
                    (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
                    (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
                    (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
                return Sys;
        },
        exportVirtual(){//导出按钮
             this.$http.get("/virtual/virtualListNoPage").then(({data})=>{   
                 this.downloadJSON2CSV(data.result);
                 this.SaveAs('虚拟机.csv',this.str)
             })
        }
</script>
发布了23 篇原创文章 · 获赞 0 · 访问量 714

猜你喜欢

转载自blog.csdn.net/weixin_44996782/article/details/104213701
今日推荐