前端JS实现一键导入excel表格

前端JS实现一键导入excel表格

前端JS实现一键导入excel表格

前面的文章中已经讲过关于js表格的导出,此文章主要说到的是excel文件如何导入到网页中,并在网页端显示。

代码部分:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>js导入excel</title>
</head>
<body>
<input type="file"onchange="importf(this)" />
<p id="excelContent"></p>
<script src="xlsx.full.min.js"></script>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
<script src="https://cdn.bootcss.com/xlsx/0.11.5/xlsx.core.min.js"></script>
<script>

    var wb;//读取
    var rABS = false; 

    //开始导入
    function importf(obj) {
        if(!obj.files) {
            return;
        }
        var f = obj.files[0];
        var reader = new FileReader();
        reader.onload = function(e) {
            var data = e.target.result;
            if(rABS) {
                wb = XLSX.read(btoa(fixdata(data)), {//手动转化
                    type: 'base64'
                });
            } else {
                wb = XLSX.read(data, {
                    type: 'binary'
                });
            }
            /**
             * wb.SheetNames[0]是获取Sheets中第一个Sheet的名字
             * wb.Sheets[Sheet名]获取第一个Sheet的数据
             */
            var excelJson = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]);
            document.getElementById("excelContent").innerHTML= JSON.stringify( excelJson );
        };
        if(rABS) {
            reader.readAsArrayBuffer(f);
        } else {
            reader.readAsBinaryString(f);
        }
    }

    //文件流转BinaryString
    function fixdata(data) {
        var o = "",
                l = 0,
                w = 10240;
        for(; l < data.byteLength / w; ++l) o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + 

w)));
        o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)));
        return o;
    }
</script>
</body>
</html>

导入前的表格:
在这里插入图片描述
导入后的显示:
在这里插入图片描述

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在前端实现导出数据为Excel表格,你可以使用以下方法之一: 1. 使用现有的库或插件:许多JavaScript库和插件可以帮助你在前端导出数据为Excel表格,如 `xlsx`、`exceljs`、`FileSaver.js` 等。这些库提供了方便的方法和功能来处理Excel文件的创建和导出。 2. 手动构建Excel文件:你可以使用JavaScript生成Excel文件的格式(如CSV、XML或XLSX)并将其下载到用户的设备上。这需要一些编码工作,但是可以根据你的需求来实现自定义功能。 以下是两种方法的示例: 使用 `xlsx` 库: ```javascript import XLSX from 'xlsx'; function exportToExcel(data, filename) { const workbook = XLSX.utils.book_new(); const worksheet = XLSX.utils.aoa_to_sheet(data); XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1'); XLSX.writeFile(workbook, filename); } ``` 使用纯JavaScript手动构建Excel文件(CSV格式): ```javascript function exportToExcel(data, filename) { let csv = 'data:text/csv;charset=utf-8,'; data.forEach(row => { csv += row.join(',') + '\n'; }); const encodedUri = encodeURI(csv); const link = document.createElement('a'); link.setAttribute('href', encodedUri); link.setAttribute('download', filename); document.body.appendChild(link); link.click(); document.body.removeChild(link); } ``` 在上述示例中,你需要提供一个二维数组 `data`,其中每个子数组表示一行数据,然后将其传递给 `exportToExcel` 函数以导出为Excel表格。 `filename` 参数是要保存的文件名。 请确保在使用这些代码之前,你已经引入了相关的库或插件,或者在手动构建Excel文件时做了必要的修改和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值