JavaScript下载base64位文件
1 /** 2 * JS生成简单格式的Excel文件 3 */ 4 function commonDownloadExcel(excelData) { 5 let country = "中国"; 6 //标题列 7 var str = '国家,' + country+ ',订单号,0001,指令号,' + excelData.name + '\r\n'; 8 9 str += '序号,合同号,紧急标识,实际到货时间\r\n'; 10 11 for (let i = 0; i < exportData.length; i++) { 12 str += (i+1).toString() + ',' 13 + exportData[i]["合同号"] + '\t,' 14 + exportData[i]["紧急标识"] + ',' 15 + exportData[i]["实际到货时间"] + '\t,' 16 + '\n'; 17 } 18 19 var blob = new Blob([str], { type: "text/plain;charset=utf-8" }); 20 //解决中文乱码问题 21 blob = new Blob([String.fromCharCode(0xFEFF), blob], { type: blob.type }); 22 object_url = window.URL.createObjectURL(blob); 23 var link = document.createElement("a"); 24 link.href = object_url; 25 link.download = country + "_" + excelData.name + ".xls"; 26 document.body.appendChild(link); 27 link.click(); 28 document.body.removeChild(link); 29 }
1 /** 2 * 下载文件 3 * */ 4 function downloadExcel(base64Data) { 5 var myBlob = this.base64toBlob(base64Data); 6 var myUrl = URL.createObjectURL(myBlob); 7 var link = document.createElement("a"); 8 link.href = myUrl; 9 link.download = "名称_" + formatDateTime() + ".文件扩展名"; 10 document.body.appendChild(link); 11 link.click(); 12 document.body.removeChild(link); 13 }
1 /** 2 * 封装base64Str blob对象 3 * */ 4 function base64toBlob (base64Str) { 5 var bstr = atob(base64Str), n = bstr.length, u8arr = new Uint8Array(n); 6 while (n--) { 7 u8arr[n] = bstr.charCodeAt(n); 8 } 9 return new Blob([u8arr]); 10 }
1 /** 2 * 当前日期格式化为yyyymmddhhmmss格式 3 * @returns 4 */ 5 function formatDateTime() { 6 let date = new Date(); 7 var y = date.getFullYear(); 8 var m = date.getMonth() + 1; 9 m = m < 10 ? ('0' + m) : m; 10 var d = date.getDate(); 11 d = d < 10 ? ('0' + d) : d; 12 var h = date.getHours(); 13 h = h < 10 ? ('0' + h) : h; 14 var minute = date.getMinutes(); 15 minute = minute < 10 ? ('0' + minute) : minute; 16 var second = date.getSeconds(); 17 second = second < 10 ? ('0' + second) : second; 18 return y + m + d + h + minute + second; 19 }