如何使用Javascript访问excel文件的特定行

如何使用Javascript访问excel文件的特定行,javascript,excel,Javascript,Excel,我正在使用Javascript读取大型Excel文件的随机行。但这需要一些时间,例如,当我处理excel文件中的30000行数据时。我需要快速的方法 <body> <input type="file" id="fileUpload" /> <input type="button" id="upload" value="Upload" onclick="Upload()" /> <!-- <input type="button" id="uplo

我正在使用Javascript读取大型Excel文件的随机行。但这需要一些时间,例如,当我处理excel文件中的30000行数据时。我需要快速的方法

<body>

<input type="file" id="fileUpload" />
<input type="button" id="upload" value="Upload" onclick="Upload()" />

<!-- <input type="button" id="upload" value="Random" onclick="ProcessExcel()" /> -->
<hr />
<h1 id="exc">Hello</h1>
<p id="her"></p>
<p id="limm"></p>
<div id="dvExcel"></div>


<script type="text/javascript">

 // var gl_ex = "";
    function Upload() {
        //Reference the FileUpload element.
        var fileUpload = document.getElementById("fileUpload");

        //Validate whether File is valid Excel file.
        var regex = /^([a-zA-Z0-9\s_\\.\-:])+(.xls|.xlsx)$/;
        if (regex.test(fileUpload.value.toLowerCase())) {
            if (typeof (FileReader) != "undefined") {
                var reader = new FileReader();

                //For Browsers other than IE.
                if (reader.readAsBinaryString) {
                    reader.onload = function (e) {
                        ProcessExcel(e.target.result);
                    };
                    reader.readAsBinaryString(fileUpload.files[0]);
                } else {
                    //For IE Browser.
                    reader.onload = function (e) {
                        var data = "";
                        var bytes = new Uint8Array(e.target.result);
                        for (var i = 0; i < bytes.byteLength; i++) {
                            data += String.fromCharCode(bytes[i]);
                        }
                        ProcessExcel(data);
                      // gl_ex = data;
                       //alert("Uploaded.");
                    };
                    reader.readAsArrayBuffer(fileUpload.files[0]);
                }
            } else {
                alert("This browser does not support HTML5.");
            }
        } else {
            alert("Please upload a valid Excel file.");
        }
    };
    function ProcessExcel(data) {
        //var data = "";
         //data = gl_ex;
        //Read the Excel File data.
        var workbook = XLSX.read(data, {
            type: 'binary'
        });

        //Fetch the name of First Sheet.
        var firstSheet = workbook.SheetNames[0];

        //Read all rows from First Sheet into an JSON array.
        var excelRows = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[firstSheet]);

        var len = excelRows.length;
        var rand_num = Math.floor((Math.random() * len) + 1);
        document.getElementById("her").innerHTML = rand_num;
        document.getElementById("limm").innerHTML = len;
        document.getElementById("exc").innerHTML = excelRows[rand_num-1].Name;

    };
</script>



</body>


你好

//var gl_ex=“”; 函数上传(){ //引用FileUpload元素。 var fileUpload=document.getElementById(“fileUpload”); //验证文件是否为有效的Excel文件。 var regex=/^([a-zA-Z0-9\s\\\.\-:])+(.xls |.xlsx)$/; if(regex.test(fileUpload.value.toLowerCase()){ if(typeof(FileReader)!=“未定义”){ var reader=new FileReader(); //对于IE以外的浏览器。 if(reader.readAsBinaryString){ reader.onload=函数(e){ ProcessExcel(如目标、结果); }; reader.readAsBinaryString(fileUpload.files[0]); }否则{ //用于IE浏览器。 reader.onload=函数(e){ var数据=”; var bytes=新的Uint8Array(e.target.result); 对于(var i=0;i
如示例所示,我正在从Excel文件中读取随机行。我认为javascript正在按顺序读取整个excel文件。我能以更快的方式读取特定行数据吗