zoukankan      html  css  js  c++  java
  • node.js、js读取excel、操作excel、创建excel之js-xlsx.js

    node.js篇

    第一步引入包
    npm install xlsx -save

    第二步使用

    var xl =require('xlsx');
    //workbook 对象,指的是整份 Excel 文档。我们在使用 js-xlsx 读取 Excel 文档之后就会获得 workbook 对象。
    var workbook = xl.readFile("public/temp/标题说明.xlsx")
    
    //返回json数据
    var dataa =xl.utils.sheet_to_json(worksheet);


    https://github.com/SheetJS/js-xlsx

    额外方法

    / 获取 Excel 中所有表名
    const sheetNames = workbook.SheetNames; // 返回 ['sheet1', 'sheet2']
    // 根据表名获取对应某张表
    const worksheet = workbook.Sheets[sheetNames[0]];

    纯js篇
    直接在页面上将excel里面数据获取,然后再向服务器请求处理数据;

    第一步
    引入

    <script src="/js/xlsx.core.min.js"></script>

    这个js

    点击下载
    第一步

    <input type="file" id="excel-file" name="upload" >
    <input type="hidden" id="hiddata" value="">

    <script>
    $(function () {
    $('#excel-file').change(function(e) {
    var files = e.target.files;

    var fileReader = new FileReader();
    fileReader.onload = function(ev) {
    try {
    var data = ev.target.result,
    workbook = XLSX.read(data, {
    type: 'binary'
    }), // 以二进制流方式读取得到整份excel表格对象
    persons = []; // 存储获取到的数据
    } catch (e) {
    alert('文件类型不正确');
    return;
    }

    // 表格的表格范围,可用于判断表头是否数量是否正确
    var fromTo = '';
    // 遍历每张表读取
    for (var sheet in workbook.Sheets) {
    if (workbook.Sheets.hasOwnProperty(sheet)) {
    fromTo = workbook.Sheets[sheet]['!ref'];
    console.log(fromTo);
    persons = persons.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));
    //发现json格式不是你想要的你可以
    //XLSX.utils.sheet_to_json(workbook.Sheets[sheet],{raw:true, header:1})
    // 如果只取第一张表,就取消注释这行
    $("#hiddata").val(JSON.stringify(persons));
    break; // 如果只取第一张表,就取消注释这行
    }
    }


    };

    // 以二进制方式打开文件
    fileReader.readAsBinaryString(files[0]);

    })
    })
    </script>

    暂时将excel数据保存在隐藏域中,点击确认后直接取出来就行


    创建excel 我推荐 ejsexcel

  • 相关阅读:
    Ubuntu 13.04 配置Cocos2d-x记录
    Ubuntu系列Crontab日记记录
    只是为了拾起一只笔,所以写了这些
    XhProf安装教程–详细教程
    检查.gitignore语法
    JavaScript设置右下角悬浮窗
    Codeforces Round #428 (Div. 2) B
    2017 多校5 hdu 6093 Rikka with Number
    cf 834 E. Ever-Hungry Krakozyabra
    codeforces 834 D. The Bakery
  • 原文地址:https://www.cnblogs.com/cangqinglang/p/10789830.html
Copyright © 2011-2022 走看看