您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

js-xlsx的工具类库xlsxUtils的使用详解

2024/5/16 19:14:03发布21次查看
这次给大家带来js-xlsx的工具类库xlsxutils的使用详解,使用js-xlsx的工具类库xlsxutils的的注意事项有哪些,下面就是实战案例,一起来看一下。
函数说明:
var xlsxutils = {     binary: {         fixdata(data) { //文件流转binarystring             //......         },         s2ab(s) { //字符串转字符流             //......         }     },     _wb: null,//缓存导入时的workbook      _rabs: false,//设置读取方式     /**      * @desc  导入根据文件      * @param {file} f 文件      * @param {function} c 回调      * @return {object} 回调值      */     import(f, c) {        //......     },    /**      * @desc  根据表sheet名获取数据      * @param {string} name       * @return {object}       */     getsheetbyname(name) {//         //......     },    /**      * @desc  根据表sheet索引获取数据      * @param {number} index       * @return {object}      */     getsheetbyindex(index = 0) {        //......     },    /**      * @desc 导出      * @param {array} data 数据{title1:datalist,title2:datalist....}        * @param {string} type       * @return {blob}      */     export(data, type) {        //......     },    /**      * 从数据数组或对象中根据key生成相同key值的对象      * @param {object|array} data       * @return {object}      */     readdatahead(data) {        //......     },    /**      * @desc 格式化数据为sheet格式      * @param {array} json 数据      */     format2sheet(json, n) {        //......     },    /**      * @desc 格式化数据为sheet格式      * @param {array} sheetdata       * @param {string} title       * @param {object} wb       */     format2wb(sheetdata, title = mysheet, wb) {        //......     },    /**      * @desc 将xlsx workbook 转为blob      * @param {array} wb       * @param {string} type 类型      */     format2blob(wb, type) {        //......     },    /**      * @desc 匹配单元格对应的标识      * @param {number} n       */     getcharcol(n) {       //......     }, };
示例:
导入示例(在线示例):
<!doctype html><html><head>     <meta charset="utf-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <meta http-equiv="x-ua-compatible" content="ie=edge">     <script src="http://oss.sheetjs.com/js-xlsx/xlsx.core.min.js"></script>      <script src="./xlsx.utils.js"></script></head><body>     <input type="file" id="demo" />     <div id="loadinfo"></div>     <div>         <div>             <label>sheetnames</label>:            <span id="sheetnames"></span>         </div>         <div>             <label id="demoname"></label>(示例):            <span id="demodata"></span>         </div>     </div>     <script>         var demo = document.getelementbyid(demo);         demo.onchange = function () {            let f = this.files[0];            let loadinfo = document.getelementbyid(loadinfo);            let demoname = document.getelementbyid(demoname);            let demodata = document.getelementbyid(demodata);             loadinfo.innerhtml = 正在读取请骚等;             demoname.innerhtml = ;             demodata.innerhtml = ;             xlsxutils.import(f, (w) => {                document.getelementbyid(sheetnames).innerhtml = json.stringify(w.sheetnames);                 demoname.innerhtml = w.sheetnames[0];                 demodata.innerhtml = json.stringify(xlsxutils.getsheetbyindex(0));                 loadinfo.innerhtml = 读取完成;             });         };    </script></body></html>
导出示例(在线示例)
<!doctype html><html><head>     <meta charset="utf-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <meta http-equiv="x-ua-compatible" content="ie=edge">     <title>demo</title>     <script src="http://oss.sheetjs.com/js-xlsx/xlsx.core.min.js"></script>      <script src="xlsx.utils.min.js"></script>     <script src="saveas.min.js"> </script></head><body>     <script>         var data = [{ 主页: 111, 名称: 6800, 数量: 6800, 昵称: 广告主网 }, { 主页: 433, 名称: 6800, 数量: 6800, 昵称: 广告主网 }, { 名称: 22, 商家: 6800, 数量: 6800, 昵称: 广告主网, }, { 名称: 43, 商家: 6800, 数量: 6800, 昵称: 广告主网, }, { 店家: 43, 价格: 6800, 数量: 6800, 昵称: 广告主网, }];    </script>     <button id="down">导出</button>     <script>         var down = document.getelementbyid(down);         down.onclick = function () {             data.unshift(xlsxutils.readdatahead(data));            var blob = xlsxutils.export({ sheet1: data, sheet2: [{ a: a, b: b }, { a: 1, b: 2 }, { a: 3, b: 4 }, { a: 5, b: 6 }] });             saveas(url.createobjecturl(blob), aa.xlsx);         };    </script></body></html>
自定义起始列导出示例(在线示例)
<!doctype html><html><head>     <meta charset="utf-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <meta http-equiv="x-ua-compatible" content="ie=edge">     <title>demo</title>     <script src="http://oss.sheetjs.com/js-xlsx/xlsx.core.min.js"></script>      <script src="xlsx.utils.min.js"></script>     <script src="saveas.min.js"> </script></head><body>     <script>         var data = [{ 主页: 111, 名称: 6800, 数量: 6800, 昵称: 广告主网 }, { 主页: 433, 名称: 6800, 数量: 6800, 昵称: 广告主网 }, { 名称: 22, 商家: 6800, 数量: 6800, 昵称: 广告主网, }, { 名称: 43, 商家: 6800, 数量: 6800, 昵称: 广告主网, }, { 店家: 43, 价格: 6800, 数量: 6800, 昵称: 广告主网, }];    </script>     <button id="down">导出</button>     <script>         var down = document.getelementbyid(down);         down.onclick = function () {             data.unshift(xlsxutils.readdatahead(data));              var tmpdata = xlsxutils.format2sheet(data, 2);            var tmpwb = xlsxutils.format2wb(tmpdata, sheet1);             tmpdata = xlsxutils.format2sheet([{ a: a, b: b }, { a: 1, b: 2 }, { a: 3, b: 4 }, { a: 5, b: 6 }], 4);             tmpwb = xlsxutils.format2wb(tmpdata, sheet2, tmpwb);            var blob = xlsxutils.format2blob(tmpwb);             saveas(url.createobjecturl(blob), aa.xlsx);         };    </script></body></html>
多数据合并导出到单表示例(在线示例)
<!doctype html><html><head>     <meta charset="utf-8">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <meta http-equiv="x-ua-compatible" content="ie=edge">     <title>demo</title>     <script src="http://oss.sheetjs.com/js-xlsx/xlsx.core.min.js"></script>      <script src="xlsx.utils.min.js"></script>     <script src="saveas.min.js"> </script></head><body>     <script>         var data = [{ 主页: 111, 名称: 6800, 数量: 6800, 昵称: 广告主网 }, { 主页: 433, 名称: 6800, 数量: 6800, 昵称: 广告主网 }, { 名称: 22, 商家: 6800, 数量: 6800, 昵称: 广告主网, }, { 名称: 43, 商家: 6800, 数量: 6800, 昵称: 广告主网, }, { 店家: 43, 价格: 6800, 数量: 6800, 昵称: 广告主网, }];    </script>     <button id="down">导出</button>     <script>         var down = document.getelementbyid(down);         down.onclick = function () {            var d1 = xlsxutils.format2sheet([{ a: a, b: b }, { a: 1, b: 2 }, { a: 3, b: 4 }, { a: 5, b: 6 }]);            var h=xlsxutils.readdatahead(data);//读取data的列头数据             data.unshift(h);//将列头追加到最data的前             var em={};//用于换行             object.keys(h).foreach((v)=>{                 em[v]=;             });            for(var i=0;i<5;i++){//换5行                 data.unshift(em);             }            var d2 = xlsxutils.format2sheet(data, 3);//3代表从d列开始             d1=object.assign(d1,d2);              var tmpwb = xlsxutils.format2wb(d1, sheet1);              var blob = xlsxutils.format2blob(tmpwb);             saveas(url.createobjecturl(blob), aa.xlsx);         };    </script></body></html>
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
相关阅读:
如何使用canvas来制作好用的涂鸦画板
如何使用s-xlsx实现excel 文件导入和导出(下)
以上就是js-xlsx的工具类库xlsxutils的使用详解的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product