美文网首页
【JS学习】base64转excel简易工具

【JS学习】base64转excel简易工具

作者: 前端菜篮子 | 来源:发表于2021-02-02 09:11 被阅读0次
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>base64ToExcel</title>
        </head>
        <body>
            请输入base64串
            <button onclick="submit()">生成excel</button>
            <br/><br/>
            <input id="test" style="width:800px;height:30px;" />
            
            <script>
                function submit(){
                    let data = document.getElementById('test').value
                    saveData(data, 'test.xlsx')
                }
    
                function saveData(data, filename) {
                  let blob = dataURItoBlob(data)
                  let objectUrl = URL.createObjectURL(blob);
                  //let spl = filename.split(".");
                  //window.open(objectUrl,'_blank','alwaysRaised=yes,height=500, width=800, toolbar= no, menubar=no, scrollbars=no, resizable=no, location=yes, status=no,top=100,left=300')
                  let aLink =  document.createElement('a');//新添加的  尝试
                  let evt = document.createEvent("HTMLEvents");
                  evt.initEvent("click",true,true);
                  aLink.download = filename;//新添加的  尝试
                  aLink.href=objectUrl;
                  aLink.click() 
                  //没有清理的 DOM 元素引用
                  //document.body.removeChild(aLink)
                }
                /**
                 * base64  to blob二进制
                 */
                function dataURItoBlob(dataURI) {
                    var byteString = atob(dataURI.split(',')[0]); //base64 解码
                    var arrayBuffer = new ArrayBuffer(byteString.length); //创建缓冲数组
                    var intArray = new Uint8Array(arrayBuffer); //创建视图
                    for (var i = 0; i < byteString.length; i++) {
                        intArray[i] = byteString.charCodeAt(i);
                    }
                    
                    // return new Blob([intArray],{type: "application/vnd.ms-excel;charset=utf-8;"});//原来封装好的 下载的是excel
    
                    return new Blob([intArray],{type: "application/octet-stream;charset=utf-8;"});//修改-1      
    
                }
    
            </script>
        </body>
    </html>
    

    相关文章

      网友评论

          本文标题:【JS学习】base64转excel简易工具

          本文链接:https://www.haomeiwen.com/subject/qjnqtltx.html