• 前端JQ excel导出数字可以计算求和


    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8" />
    <title></title>
    <script src="dist/xlsx.full.min.js"></script>
    <script>
    function json2Excel() {
    dataSource = [
    ["编号", "名称", "价格", "可以求和计算"],
    [1, "4", "¥78.5", 4],
    [2, "3", "¥65.3", 2],
    [3, "2", "¥89.4", 1],
    ];
    var wopts = {
    bookType: 'xlsx',
    bookSST: false,
    type: 'binary'
    };
    var workBook = {
    SheetNames: ['Sheet1'],
    Sheets: {},
    Props: {}
    };
    //1、XLSX.utils.json_to_sheet(data) 接收一个对象数组并返回一个基于对象关键字自动生成的“标题”的工作表,默认的列顺序由使用Object.keys的字段的第一次出现确定
    //2、将数据放入对象workBook的Sheets中等待输出
    const sheet2JSONOpts = {
    /** Default value for null/undefined values */
    defval: 'D'//给defval赋值为空的字符串
    };
    workBook.Sheets['Sheet1'] = XLSX.utils.json_to_sheet(dataSource);

    //3、XLSX.write() 开始编写Excel表格
    //4、changeData() 将数据处理成需要输出的格式
    saveAs(new Blob([changeData(XLSX.write(workBook, wopts))], { type: 'application/octet-stream' }))
    }

    function saveAs(obj, fileName) {//当然可以自定义简单的下载文件实现方式
      
    fileName =  fileName ? fileName + '.xlsx' : new Date().getTime() + '.xlsx'
        if (window.navigator.msSaveBlob) {

            //href = window.navigator.msSaveOrOpenBlob(tmpDown, excelName + ".xlsx");
            href = window.navigator.msSaveOrOpenBlob(obj, fileName);
        } else {
            var tmpa = document.createElement("a");
            tmpa.download = fileName;
            tmpa.href = URL.createObjectURL(obj); //绑定a标签
            tmpa.click(); //模拟点击实现下载
        }
        
       
        
        setTimeout(function () { //延时释放
        URL.revokeObjectURL(obj); //用URL.revokeObjectURL()来释放这个object URL
        }, 100);
        
        }

    function changeData(s) {
    //如果存在ArrayBuffer对象(es6) 最好采用该对象
    if (typeof ArrayBuffer !== 'undefined') {

    //1、创建一个字节长度为s.length的内存区域
    var buf = new ArrayBuffer(s.length);

    //2、创建一个指向buf的Unit8视图,开始于字节0,直到缓冲区的末尾
    var view = new Uint8Array(buf);

    //3、返回指定位置的字符的Unicode编码
    for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
    return buf;

    } else {
    var buf = new Array(s.length);
    for (var i = 0; i != s.length; ++i) buf[i] = s.charCodeAt(i) & 0xFF;
    return buf;
    }
    }
    </script>
    </head>
    <body>
    <button onclick="json2Excel()">导出</button>
    </body>
    </html>

  • 相关阅读:
    Nginx的访问控制
    远程登录
    Linux的网络命令
    laravel-collect
    laravel-model
    laravel-Macroable
    laravel-容器
    机器学习-Logisitic回归
    机器学习-多变量线性回归
    算法笔记-分支界限法
  • 原文地址:https://www.cnblogs.com/914556495wxkj/p/14090202.html
Copyright © 2020-2023  润新知