美文网首页
导入本地excel表格

导入本地excel表格

作者: 秉持本心 | 来源:发表于2018-12-02 23:28 被阅读0次

FileReader

FileReader主要用于将文件内容读入内存,通过一系列异步接口,可以在主线程中访问本地文件

创建实例

var reader = new FileReader();

方法
方法定义 描述
abort() 终止文件读取操作
readAsArrayBuffer(file) 异步按字节读取文件内容,结果用ArrayBuffer对象表示
readAsBinaryString(file) 异步按字节读取文件内容,结果为文件的二进制串
readAsDataURL(file) 异步读取文件内容,结果用data:url的字符串形式表示
readAsText(file,encoding) 异步按字符读取文件内容,结果用字符串形式表示,encoding缺省值为'UTF-8'
事件
事件名称 描述
onabort 当读取操作被中止时调用
onerror 当读取操作发生错误时调用
onload 当读取操作成功完成时调用
onloadend 当读取操作完成时调用,不管是成功还是失败
onloadstart 当读取操作将要开始之前调用
onprogress 在读取数据过程中周期性调用
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>导入Excel</title>
    <script src="http://oss.sheetjs.com/js-xlsx/xlsx.full.min.js"></script>
</head>
<body>
    <input type="file" onchange="importExcel(this)" />
    <div id="demo"></div>
    <script>
        var wb; // 定义一个变量为读取完成的数据
        var rABS = false; // 是否将文件读取为二进制字符串

        // 导入函数
        function importExcel(event) {
            if(!event.files) {
                return;
            }
            // 这里可以自定义控制导入文件大小
            const IMPORTFILE_MAXSIZE = 1*1024;
            // 截取到导入文件名的后缀
            var suffix = event.files[0].name.split(".")[1];
            // 判断导入文件类型
            if(suffix != 'xls' && suffix !='xlsx'){
                alert('导入的文件格式不正确!')
                return
            }
            // 判断导入文件大小
            if(event.files[0].size/1024 > IMPORTFILE_MAXSIZE){
                alert('导入的表格文件不能大于1M')
                return
            }

            var obj = event.files[0];
            // 实例一个FileReader对象将文件内容读入内存
            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的数据
                document.getElementById("demo").innerHTML= JSON.stringify( XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]) );
            };
            if (rABS) {
                reader.readAsArrayBuffer(obj);
            } else {
                reader.readAsBinaryString(obj);
            }
        }
        // 文件流转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>

相关文章

  • 导入本地excel表格

    FileReader FileReader主要用于将文件内容读入内存,通过一系列异步接口,可以在主线程中访问本地文...

  • Excel表格导入数据库及其下载

    Excel表格的导入导出 1.读取指定Excel到数据库 springMvc上传获取文件 //导入excel表格p...

  • Java 使用Apache POI读取和写入Excel表格

    在实际项目中可能出现将数据生成Excel表格,然后导入到本地。或者使用Excel模板将数据导出,这个或许在项目中比...

  • Navicat导入Excel文件

    记录:如何使用navicat导入excel文件转载自:Navicat导入Excel表格数据[https://blo...

  • Excel表格导入

    package com.anolesoft.erp.hr.action; import java.sql.Conn...

  • python操作表格

    使用python语言,读写表格案例。 读取表格: 1、导入模块 import xlrd 2、打开Excel文件...

  • Vue+Element前端导入导出Excel

    1 前言 1.1 业务场景 由前台导入Excel表格,获取批量数据。 根据一个数组导出Excel表格。 2 实现原...

  • EXcel与MySQL之间的数据迁移

    参考:将Excel表格或者CSV文件导入到Mysql中如何把使用Navicat把Excel表格中时间日期以date...

  • SAP 操作文件

    本地文件 excel 导入 ALSM_EXCEL_TO_INTERNAL_TABLE 本质是OLE 通过区域获取剪...

  • Java使用POI解析Excel表格

    概述 Excel表格是常用的数据存储工具,项目中经常会遇到导入Excel和导出Excel的功能。常见的Excel格...

网友评论

      本文标题:导入本地excel表格

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