如何使用Javascript访问excel文件的特定行
我正在使用Javascript读取大型Excel文件的随机行。但这需要一些时间,例如,当我处理excel文件中的30000行数据时。我需要快速的方法如何使用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
<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文件。我能以更快的方式读取特定行数据吗